如何在 Go 中檢查 map 中是否包含某個鍵
雜湊表在 Go 中作為 map 資料型別實現。Go Maps 可以看作是鍵/值對無序對的集合。Maps 是 Go 語言中功能最強大,用途最廣泛的資料型別之一,因為它們能夠執行快速查詢,新增和刪除操作。當我們嘗試在 map
中獲取 key
值時,我們得到兩個返回值。如果第二個值是 true,則在 map
上顯示 key
。
Go 中 map
資料結構
map 的語法
var map_name map[KeyType]ValueType
其中,KeyType
是任何可比較的資料型別,ValueType
也是任何的資料型別,包括 map
本身。對映中所有鍵的資料型別必須相同。同樣,對映中所有值的資料型別也必須相同。但是,鍵的資料型別和值的資料型別可以不同。
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
具有鍵和值的字串資料型別。在 map_1
中,Sthapit
是鍵 Jenna
的值。
在 Go map
中檢查鍵值
Go map 中檢查是否包含某鍵
first_value, second_value := map_name[key_name]
上面的語句返回兩個值,即 first_value
和 second_value
。first_value
給出 key
的值。如果 map_name
不包含 key_name
,則 first_value
將是預設的零值。同樣,second_value
是一個布林值,如果 map
中存在 key_name
,則為 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
這裡的 0
的 second_value
為 true
,因為 map_name
中存在鍵 0
。但是,因為 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
是鍵,而 Sthapit
不是 map_name
的鍵。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn