在 Golang 中檢查切片是否包含一個元素

Jay Singh 2022年4月22日
在 Golang 中檢查切片是否包含一個元素

Go 缺乏用於確定給定值是否屬於切片的語言概念或標準庫函式。你需要使用兩個引數建立自己的 contains() 函式,切片和要查詢的元素。

我們將在本教程中學習如何使用 Golang 來確定元素是否存在。

使用 contains() 函式檢查切片中是否存在元素

在以下示例中,contains() 用於檢查切片中是否存在元素。

示例 1:

package main

import "fmt"

func contains(elems []string, v string) bool {
    for _, s := range elems {
        if v == s {
            return true
        }
    }
    return false
}
func main() {
    fmt.Println(contains([]string{"a", "b", "c"}, "b"))
    fmt.Println(contains([]string{"a", "b", "c"}, "d"))
}

輸出:

true
false

在下一個示例中,我們在 slice1 中取一個整數切片。檢查該切片以檢視元素 5 是否存在。

示例 2:

package main

import "fmt"

func main() {
    slice1 := []int{1, 2, 3, 4, 5}
    var element int = 5

    var result bool = false
    for _, x := range slice1 {
        if x == element {
            result = true
            break
        }
    }
    if result {
        fmt.Print("Element is present.")
    } else {
        fmt.Print("Element is not present.")
    }
}

輸出:

Element is present.

最後一個示例在名為 s 的陣列中包含一個名稱片段,並檢查 "Rick""Mike" 是否存在。

示例 3:

package main

import "fmt"

func contains(s []string, str string) bool {
    for _, v := range s {
        if v == str {
            return true
        }
    }

    return false
}

func main() {
    s := []string{"Jay", "Rick", "Morty", "Jerry"}
    fmt.Println(contains(s, "Rick"))
    fmt.Println(contains(s, "Mike"))
}

輸出:

true
false

相關文章 - Go Slice