ホームページ > バックエンド開発 > Golang > Go は「if x in」構造を使用せずに要素のメンバーシップをどのようにチェックしますか?

Go は「if x in」構造を使用せずに要素のメンバーシップをどのようにチェックしますか?

Mary-Kate Olsen
リリース: 2024-12-14 16:16:17
オリジナル
172 人が閲覧しました

How Does Go Check for Element Membership Without an

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

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