go語言內建有map這種資料結構,它由無序的鍵值對組成,跟大部分語言中的map用法非常相似。
它的鍵不能由可變型別(引用語義)的結構型別擔當,如切片、陣列、函式等等。
map只有len
,沒有cap
。
我們可以直接定義,或者通過make
函式建立,通過make
函式建立時,可以指定容量。
package main
import
"fmt"
func
main()
fmt.
println
(m4)
}
這裡的遍歷類似python字典的遍歷,使用迭代器遍歷,第乙個值為key
,第二個值為value
,並且,迭代結果是無序的。
下面還給出了如何判斷乙個key值是否存在的方法,呼叫map
,會有2個返回值,第乙個是value值,第二個是key值是否存在,若存在,則返回true
否則返回false
。
package main
import
"fmt"
func
main()
//第乙個返回值為key,第二個為value,迭代無序
for key, value :=
range mp1
// 如何判斷乙個key值是否存在
// 第乙個返回值為key所對應的value,第二個返回值為key是否存在的狀態,存在為true,不存在為false
value, ok := mp1[1]
if ok ==
true
else
}
map的賦值類似c語言和python的語言,具體操作如下,且容量不夠時map
會進行自動擴容。
package main
import
"fmt"
func
main()
fmt.
println
("mp1 = "
, mp1)
// 自動擴容
mp1[4]
="d"
fmt.
println
("mp1 = "
, mp1)
// 有重複值會覆蓋前乙個值
mp1[4]
="e"
fmt.
println
("mp1 = "
, mp1)
}
我們可以使用delete
函式來刪除map
中的值,第乙個引數為map物件,第二個引數為要刪除的鍵值對的key
值。
package main
import
"fmt"
func
main()
fmt.
println
("m = "
, m)
delete
(m,1
)//刪除key值為1的內容
fmt.
println
("m = "
, m)
}
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
map是雜湊表的引用,map的型別為map k v,k和v是字典的鍵和值對應的資料型別,map中所有的鍵都擁有相同的資料型別,同時所有的值都擁有相同的資料型別,但鍵的型別和值的型別不一定相同 鍵的型別k必須是可以通過操作符 來進行比較的資料型別,所以map可以檢測某乙個鍵是否已經存在 ages ma...