概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
Go 1.18 が出るまではジェネリクスが無かったので、特定の値がスライスに含まれているかどうかは自分でループさせて確認するのがGoでは普通でした。
で、以前記事にした Go 1.18 には含まれなかった汎用スライスライブラリには Contains 関数があります。これを使うと他の言語での Contains メソッドと同じような感覚で処理が書けます。
サンプル
予め、 golang.org/x/exp/slices
を go get しておきます。
$ go get golang.org/x/exp/slices
go: downloading golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0
package main import ( "fmt" "golang.org/x/exp/slices" ) func main() { var ( sli1 = []int{1, 2, 3, 4, 5} sli2 = []string{"a", "b", "c", "d", "e"} ) fmt.Println(slices.Contains(sli1, 3)) fmt.Println(slices.Contains(sli2, "hello")) }
実行すると以下の感じです。
$ go run main.go true false
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。