在 Golang 中检查切片是否包含一个元素
Jay Singh
2022年4月22日
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