ホームページ >バックエンド開発 >Golang >Go 配列の要素メンバーシップを効率的に確認するにはどうすればよいですか?

Go 配列の要素メンバーシップを効率的に確認するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-31 15:49:09771ブラウズ

How to Efficiently Check for Element Membership in Go Arrays?

Go で配列のメンバーシップを確認する

Go では、Python とは異なり、Python の "if x in" に相当する組み込み構造はありません。 " 配列内の要素の存在を確認します。

Post Go 1.18 (推奨されるアプローチ)

Go 1.18 以降では、スライスを使用できます。スライス内のメンバーシップを効率的にチェックする関数が含まれています。

if slices.Contains(array, "x") {
    // Do something
}

Pre Go 1.18 (代替メソッド)

を使用している場合古いバージョンの Go では、2 つのオプションがあります:

  1. 反復検索: 配列を反復処理し、各要素をターゲット値 "x" と比較します。このアプローチは、大きな配列では非効率的です。
func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}
  1. マップの使用法: キーと値のペアを使用して配列をマップ (辞書) に変換します。はターゲット値であり、値はブール値です。この方法では、配列のサイズに関係なく、検索時間は一定です。
visitedURL := map[string]bool{
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL["thisSite"] {
    fmt.Println("Already been here.")
}

データ コレクションのサイズと性質に基づいて、適切な方法を選択してください。

以上がGo 配列の要素メンバーシップを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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