ホームページ  >  記事  >  バックエンド開発  >  Go リスト内の値の存在を効率的に確認するにはどうすればよいですか?

Go リスト内の値の存在を効率的に確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-25 11:19:11946ブラウズ

How Can I Efficiently Check for Value Existence in Go Lists?

マップを使用した Go リストでの効率的な値チェック

Go でリストを扱うとき、値が存在するかどうかを確認する必要が生じる場合があります。リスト内で。 Python にはこの目的に便利な "in" キーワードが用意されていますが、Go には直接同等のキーワードがありません。

1 つのアプローチは、各値を任意の整数値にマップする set イディオムを利用することです。ただし、この方法では未使用の整数値を指定する必要があり、面倒になる可能性があります。

効率的なセット操作のためのマップの利用

別の解決策は、map[string を使用することです。 ]ブールをセットとして。有効な値をブール値「true」にマッピングすることで、次のようにメンバーシップをテストできます。

valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true}

if valid[x] {
    fmt.Println("found")
}

マップに存在しないキーをクエリすると、存在しないことを示すデフォルトの「false」値が返されます。 .

初期化イディオムによるコードの最適化

初期化プロセスでは、有効な値のスライスと for-range ループの使用を検討してください:

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}

または、簡潔な初期化のために 1 文字のブール定数を定義します:

const t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}

これらの戦略を使用すると、Go のマップ タイプの機能を利用しながら、Python の "in" キーワードを必要とせずに、Go リスト内の値のメンバーシップを効率的にチェックできます。セットのような機能。

以上がGo リスト内の値の存在を効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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