いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-250 (特定の値がスライスに含まれているかを判定)(slices.Contains)

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

Go 1.18 が出るまではジェネリクスが無かったので、特定の値がスライスに含まれているかどうかは自分でループさせて確認するのがGoでは普通でした。

で、以前記事にした Go 1.18 には含まれなかった汎用スライスライブラリには Contains 関数があります。これを使うと他の言語での Contains メソッドと同じような感覚で処理が書けます。

devlights.hatenablog.com

サンプル

予め、 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

参考情報

pkg.go.dev

stackoverflow.com

Go言語による並行処理

Go言語による並行処理

Amazon


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。