go語言中提供的對映關係容器為map
,其內部使用雜湊表(hash)
實現。
go語言中 map的定義語法如下:
map
[keytype]valuetype
其中,
map型別的變數預設初始值為nil,需要使用make()函式來分配記憶體。語法為:
make
(map
[keytype]valuetype,
[cap
])
其中cap
表示map
的容量,該引數雖然不是必須的,但是我們應該在初始化map
的時候就為其指定乙個合適的容量。
map中的資料都是成對出現的,map的基本使用示例**如下:
func
main()
輸出:
map
[小明:
100 張三:90]
100type of a:
map[
string
]int
map也支援在宣告的時候填充元素,例如:
func
main()
fmt.
println
(userinfo)
//}
go語言中有個判斷map中鍵是否存在的特殊寫法,格式如下:
value, ok :=
map[key]
舉個例子:
func
main()
else
}
go語言中使用for range
遍歷map。
func
main()
}
但我們只想遍歷key的時候,可以按下面的寫法:
func
main()
}
注意:遍歷map時的元素順序與新增鍵值對的順序無關。
使用delete()
內建函式從map
中刪除一組鍵值對,delete()
函式的格式如下:
delete
(map
, key)
其中,
func
main()
}
func
main()
//取出map中的所有key存入切片keys
var keys =
make([
]string,0
,200
)for key :=
range scoremap
//對切片進行排序
sort.
strings
(keys)
//按照排序後的key遍歷map
for_
, key :=
range keys
}
下面的**演示了切片中的元素為map
型別時的操作:
func
main()
fmt.
println
("after init"
)// 對切片中的map元素進行初始化
mapslice[0]
=make
(map
[string
]string,10
) mapslice[0]
["name"]=
"小王子"
mapslice[0]
["password"]=
"123456"
mapslice[0]
["address"]=
"上海"
for index, value :=
range mapslice
}
下面的**演示了map中值為切片型別的操作:
func
main()
value =
(value,
"北京"
,"上海"
) slicemap[key]
= value
fmt.
println
(slicemap)
}
go語言學習 對映map
go語言中的map 對映 字典 是一種內建的資料結構,它是乙個無序的key value對的集合。go語言中的map是引用型別,必須初始化才能使用。一 map的定義和初始化 go語言中map宣告的語法 var m map keytype valuetype 其中 keytype 鍵key的型別 val...
GO學習筆記之 map
map是 key value 資料結構,又稱為字段或者關聯陣列。類似其他程式語言的集合 在程式設計中經常使用。基本語法 map是無序的 var map變數名 map keytype valuetype key可以是什麼型別 golang中的 map,的 key可以是很多種型別,比如 bool 數字,...
GO語言對映(Map)用法分析
對映是一種內建的資料結構,用來儲存鍵值對的無序集合。1 對映的建立 make map keytype valuetype,initialcapacity make map keytype valuetype map keytype valuetype map keytype valuetype 如下...