在 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