「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 サイトの他の関連記事を参照してください。