Golang でスライスが要素を含むかどうかをチェックする
Jay Singh
2022年8月23日
Go には、特定の値がスライスに属しているかどうかを判断するための言語概念または標準ライブラリ関数がありません。探しているスライスと要素の 2つのパラメーターを使用して、独自の 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