Go で Python の "if x in" 構造のように配列要素を検索する方法
Python では、要素が存在するかどうかを簡単に確認できます「if x in」構造を使用して配列内で。 Go は、配列全体を反復処理せずに配列のメンバーシップをチェックするための同様のメカニズムを提供していますか?
回答
Go には、Python の "if x in" に直接相当するものはありません。配列の構築。ただし、Go 1.18 以降では、スライスに slices.Contains 関数を使用して同様の結果を達成できます。
if slices.Contains(array, x) { // do something }
Pre-Go 1.18 Solution
Go 1.18 より前には、配列をチェックするための組み込み演算子はありませんでしたメンバーシップ。配列を反復処理し、次のようなカスタム関数を使用する必要がありました。
func stringInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false }
代替アプローチ: Maps
反復の必要性を回避するには、次のようにします。配列やスライスの代わりにマップを利用します:
visitedURL := map[string]bool{ "http://www.google.com": true, "https://paypal.com": true, } if visitedURL[thisSite] { fmt.Println("Already been here.") }
以上がGo には、配列メンバーシップに関する Python の「if x in」と同等のものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。