ホームページ > バックエンド開発 > Golang > Go には、配列メンバーシップに関する Python の「if x in」と同等のものがありますか?

Go には、配列メンバーシップに関する Python の「if x in」と同等のものがありますか?

Susan Sarandon
リリース: 2024-12-27 01:04:09
オリジナル
141 人が閲覧しました

Does Go Have an Equivalent to Python's

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート