在例子 8.1 中,我們已經見過可以使用val1 = map1[key1]
的方法獲取 key1 對應的值 val1。如果 map 中不存在 key1,val1 就是乙個值型別的空值。
這就會給我們帶來困惑了:現在我們沒法區分到底是 key1 不存在還是它對應的 value 就是空值。
為了解決這個問題,我們可以這麼用:val1, ispresent = map1[key1]
ispresent 返回乙個 bool 值:如果 key1 存在於 map1,val1 就是 key1 對應的 value 值,並且 ispresent為true;如果 key1 不存在,val1 就是乙個空值,並且 ispresent 會返回 false。
如果你只是想判斷某個 key 是否存在而不關心它對應的值到底是多少,你可以這麼做:
_, ok := map1[key1] //如果key1存在則ok == true,否則ok為false
或者和 if 混合使用:
if _, ok :=map1[key1]; ok
從 map1 中刪除 key1:
直接delete(map1, key1)
就可以。
如果 key1 不存在,該操作不會產生錯誤。
1package main
2 import "
fmt"34
func main() else
1819 value, ispresent = map1["
paris"]
20 fmt.printf("
is \"paris\" in map1 ?: %t\n
", ispresent)
21 fmt.printf("
value is: %d\n
", value)
2223
//delete an item:
24 delete(map1, "
washington")
25 value, ispresent = map1["
washington"]
26if
ispresent else
31 }
Go語言學習筆記 map
學習筆記根據 無聞 go語言基礎教程 整理 package main import fmt sort func main 普通建立方式 func test1 fmt.println m map 使用make關鍵字建立 func test2 直接宣告和賦值建立 func test3 使用更簡單的方式 ...
go語言學習筆記 map
理解 map是由一組無序的鍵key值value對集合的內建型別,可以通過鍵來獲取對應的值,map和slices一樣,也是引用型別 注意 map之間不能使用 操作符來判斷 建立map 語法 map type of key type of value var mymap map string int n...
go語言學習筆記 map
go語言內建有map這種資料結構,它由無序的鍵值對組成,跟大部分語言中的map用法非常相似。它的鍵不能由可變型別 引用語義 的結構型別擔當,如切片 陣列 函式等等。map只有len,沒有cap。我們可以直接定義,或者通過make函式建立,通過make函式建立時,可以指定容量。package main...