Python では、要素がリスト内に存在するかどうかを in キーワードで簡単に検証できます。一方、Go には明示的に同等の機能がありません。この記事では、Go でこのようなチェックを実装する手法について説明します。
1 つのアプローチには、値を未使用の整数値にマップするセットの使用が含まれます。ただし、これには各要素に人為的な整数の指定が必要であり、理想的な解決策とはみなされません。
より洗練されたアプローチは、文字列からブール値へのマップを利用することです。マップはセットとして機能し、マップ内にキーと値のペアが存在しない場合は false に相当し、要素がリストに存在しないと解釈できます。
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
注:
大規模なリストを効率的に処理するには、for range ループを使用してマップを初期化するか、型なし定数を作成してブール値を最適化することを検討してください。割り当て。
var t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
以上がGo リスト内の値の存在を効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。