Go でリストのメンバーシップをチェックする: Python の "in" キーワードの代替
Python では、"in" キーワードは便利なリスト内に値が存在するかどうかを確認する方法。ただし、Go は直接同等のものを提供しません。
Map を使用した "in" キーワードの近似
Go の 1 つのアプローチは、map[string] を利用することです。集合の表現としての bool。有効な値をキーとして保存し、真の値を割り当てることで、キーがマップ内に存在するかどうかをチェックしてメンバーシップをテストできます。
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
ゼロ値の利用
マップ内でキーが見つからない場合、bool のゼロ値 (false) が返されるという事実を利用します。これにより、真の値の明示的な割り当てを省略でき、初期化が簡素化されます。
valid := map[string]bool{"red", "green", "yellow", "blue"} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
最適化
有効な値が多数あるシナリオの場合は、次の使用を検討してください。マップを初期化するための for range ループ。これにより、コンパクトなソリューションが提供されます:
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
さらに、ブール値の繰り返しを避けるために const 変数を定義してコードを最適化できます:
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
以上がGo でリストのメンバーシップを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。