Go でマップにキーが含まれているかどうかを確認する方法
ハッシュテーブルは、Go
に map
データ型として実装されています。Go のマップは、順序付けられていないキーと値のペアのコレクションとして表示できます。マップ map
は、高速な検索、追加、削除を実行できるため、Go
で最も強力で用途の広いデータ型の 1つです。map
の key
の値を取得しようとすると、2つの戻り値を取得します。2 番目の値が true
の場合、key
は map
に存在します。
Go のマップ map
の構造
map
の構文
var map_name map[KeyType]ValueType
ここで、KeyType
は比較可能な任意の datatype
であり、ValueType
も map
自体を含む任意の datatype
でもあります。map
内のすべての keys
の datatype
は同じでなければなりません。同様に、map
内のすべての values
の datatype
も同じである必要があります。ただし、keys
の datatype
と values
の datatype
は異なる場合があります。
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_1
は keys
と values
の両方に string
データ型を持っています。map_1
では、Sthapit
はキー Jenna
の値です。
Go map
で key
を確認する
Go map
でに key
が含まれているかどうかを確認する構文
first_value, second_value := map_name[key_name]
上記のステートメントは、2つの値を返します。first_value
と second_value
。first_value
は key
の値を与えます。map_name
に key_name
が含まれていない場合、first_value
はデフォルトのゼロ値になります。同様に、second_value
はブール値で、key_name
が map
に存在する場合に true
になります。first_value
と second_value
を異なる方法で解釈して、map_name
に key_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
が存在するため、0
の second_value
は true
です。ただし、キー9
が map_name
に存在しないため、9
の second_value
は false
です。
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
ステートメントを使用して、map
に key
が存在するかどうかを確認しました。Giri
は key
であり、Sthapit
は map_name
の key
ではありません。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn