ホームページ >バックエンド開発 >Golang >Go は「if x in」構造を使用せずに要素のメンバーシップをどのようにチェックしますか?

Go は「if x in」構造を使用せずに要素のメンバーシップをどのようにチェックしますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 16:16:17174ブラウズ

How Does Go Check for Element Membership Without an

「if x in」構築に対する Go のアプローチ

Go は、配列内に要素が存在するかどうかを確認したり、メンバーシップを確認したりするためのさまざまなアプローチを提供します。 Python のような明示的な "if x in" 構造はありませんが、使用されるバージョンとデータ構造に応じていくつかの代替手段が提供されます。

1. Slices.Contains の使用 (Go 1.18 以降)

Go 1.18 以降のバージョンでは、slices.Contains メソッドが直接的かつ効率的なソリューションを提供します。配列またはスライスを入力として受け取り、指定された要素が存在するかどうかを確認します。

arr := []string{"a", "b", "c"}
if slices.Contains(arr, "b") {
    // Element is present
}

2.配列の反復 (Go 1.18 より前)

Go 1.18 より前には、メンバーシップをチェックするための組み込み演算子はありませんでした。代わりに、配列を反復処理するカスタム関数を作成できます:

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

3。メンバーシップ チェックにマップを使用する

リスト全体を反復処理することが望ましくない場合は、配列またはスライスの代わりにマップを使用すると、メンバーシップ チェックのより効率的なソリューションを提供できます。

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

以上がGo は「if x in」構造を使用せずに要素のメンバーシップをどのようにチェックしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。