Go には Python に似た「if x in」構造がありますか? [重複] 質問する

Go には Python に似た「if x in」構造がありますか? [重複] 質問する

Go を使用して、配列全体を反復処理せずにx配列内にあるかどうかを確認するにはどうすればよいでしょうか? この言語にはこれを行うための構造がありますか?

Python の場合と同様:

if "x" in array: 
  # do something

ベストアンサー1

Go には、これを実行するための組み込み演算子はありません。配列を反復処理する必要があります。次のように、独自の関数を記述してこれを実行できます。

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}

またはGo 1.18以降では、slices.Contains(golang.org/x/exp/slices より)。

リスト全体を反復処理せずにメンバーシップを確認できるようにするには、次のように配列やスライスの代わりにマップを使用する必要があります。

visitedURL := map[string]bool {
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL[thisSite] {
    fmt.Println("Already been here.")
}

おすすめ記事