ホームページ >バックエンド開発 >Golang >Go スライスとマップのメンバーシップを効率的に確認するにはどうすればよいですか?

Go スライスとマップのメンバーシップを効率的に確認するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-13 20:16:15164ブラウズ

How to Efficiently Check for Membership in Go Slices and Maps?

Go の効果的な "if x in" 構文: Python の構造体との比較

Go はネイティブに "if x in" 構造体を提供しませんパイソンに似ています。ただし、配列またはスライスに対して同じ機能を実現し、より効率的なメンバーシップ チェックのためにマップを使用する効果的な手法があります。

配列とスライスの場合

In Go 1.18 以降では、スライスには Contains 関数が用意されており、 members:

if contains.Contains(array, "x") {
  // Perform actions
}

Go 1.18 より前には、配列またはスライスのメンバーシップ チェック用の組み込み演算子はありませんでした。カスタム関数を実装できます。

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}

マップの場合

マップは、キーと値のペアを保存することで、より効率的なメンバーシップ チェックを提供します。要素がマップ内に存在するかどうかを確認するには、次の構文を使用します:

if visitedURL[thisSite] {
    // Perform actions
}

ここで、visitedURL は、要素を表すキーとその存在を表す値 (たとえば、既存の要素の場合は true) を含むマップです。

以上がGo スライスとマップのメンバーシップを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。