Go でマップにキーが含まれているかどうかを確認する方法

  1. Go のマップ map の構造
  2. Go mapkey を確認します

ハッシュテーブルは、Gomap データ型として実装されています。Go のマップは、順序付けられていないキーと値のペアのコレクションとして表示できます。マップ map は、高速な検索、追加、削除を実行できるため、Go で最も強力で用途の広いデータ型の 1つです。mapkey の値を取得しようとすると、2つの戻り値を取得します。2 番目の値が true の場合、keymap に存在します。

Go のマップ map の構造

map の構文

var map_name map[KeyType]ValueType

ここで、KeyType は比較可能な任意の datatype であり、ValueTypemap 自体を含む任意の datatype でもあります。map 内のすべての keysdatatype は同じでなければなりません。同様に、map 内のすべての valuesdatatype も同じである必要があります。ただし、keysdatatypevaluesdatatype は異なる場合があります。

package main

import "fmt"

func main() {
    map_1 := map[string]string{
        "Jenna": "Sthapit"
    }

    for k, v := range map_1 {
        fmt.Printf("Key:%v\nValue: %s\n", k, v)
    }

}   

出力:

Key:Jenna
Value: Sthapit

上記の例では、map_1keysvalues の両方に string データ型を持っています。map_1 では、Sthapit はキー Jenna の値です。

Go mapkey を確認します

Go map でに key が含まれているかどうかを確認する構文

first_value, second_value := map_name[key_name]

上記のステートメントは、2つの値を返します。first_valuesecond_valuefirst_valuekey の値を与えます。map_namekey_name が含まれていない場合、first_value はデフォルトのゼロ値になります。同様に、second_value はブール値で、key_namemap に存在する場合に true になります。first_valuesecond_value を異なる方法で解釈して、map_namekey_name が含まれているかどうかを確認できます。

package main

import "fmt"

func main() {
    map_name := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }
    _, second_value_1 := map_name[1]
    fmt.Printf("second_value for 1: %t\n", second_value_1)

    _, second_value_9 := map_name[9]
    fmt.Printf("second_value for 9: %t\n", second_value_9)
}   

出力:

second_value for 1: true
second_value for 9: false

ここでは、map_name にキー0 が存在するため、0second_valuetrue です。ただし、キー9map_name に存在しないため、9second_valuefalse です。

package main

import "fmt"

func main() {
    map_name := map[string]string{
        "Giri":     "Alok",
        "Nembang":  "Reman",
        "Maharjan": "Riken",
        "Jha":      "Rudra",
    }
    if first_value, second_value := map_name["Giri"]; second_value {
        fmt.Printf("Giri is present in map. Value is: %s\n", first_value)
    } else {
        fmt.Printf("Giri is not present in map.\n")
    }

    if first_value, second_value := map_name["Sthapit"]; second_value {
        fmt.Printf("Sthapit is present in map. Value is: %s\n", first_value)
    } else {
        fmt.Printf("Sthapit is not present in map. \n")
    }
}
   

出力:

Giri is present in map. Value is: Alok
Sthapit is not present in map.

この例では、if ステートメントを使用して、mapkey が存在するかどうかを確認しました。Girikey であり、Sthapitmap_namekey ではありません。

関連記事 - Go Map

  • Go でマップ全体を反復処理する方法
  • comments powered by Disqus