map是go的內建型別,它使用鍵值對的方式來檢索值(乙個鍵對應乙個值)
可以使用內建函式 make 也可以使用 map 關鍵字來定義 map:
/* 宣告變數,預設 map 是 nil */
var map_variable map
[key_data_type]value_data_type
/* 使用 make 函式 */
map_variable =
make
(map
[key_data_type]value_data_type)
rating :=
map[
string
]float32
如果不初始化 map,那麼就會建立乙個 nil map。
nil map 不能用來存放鍵值對
package main
import
"fmt"
func
main()
/* 檢視元素在集合中是否存在 */
captial, ok := countrycapitalmap[
"united states"
]/* 如果 ok 是 true, 則存在,否則不存在 */
if(ok)
else
}執行結果:
capital of france is paris
capital of italy is rome
capital of japan is tokyo
capital of india is new delhi
capital of united states is not present
delete(map, key) 函式用於刪除集合的元素, 引數為 map 和其對應的 key。刪除函式不返回任何值。
示例**:
package main
import
"fmt"
func
main()
fmt.
println
("原始 map"
)/* 列印 map */
for country :=
range countrycapitalmap
/* 刪除元素 */
delete
(countrycapitalmap,
"france");
fmt.
println
("entry for france is deleted"
)
fmt.
println
("刪除元素後 map"
)/* 列印 map */
for country :=
range countrycapitalmap
}執行結果:
原始 map
capital of france is paris
capital of italy is rome
capital of japan is tokyo
capital of india is new delhi
entry for france is deleted
刪除元素後 map
capital of italy is rome
capital of japan is tokyo
capital of india is new delhi
我們可以通過key獲取map中對應的value值。語法為:
map
[key]
value, ok := map[key]
示例**:
package main
import (
"fmt"
)func main()
執行結果:
0 false
1 true
使用len函式可以確定map的長度。
len(map) // 可以得到map的長度
與切片相似,對映是引用型別。
示例**:
package main
import
("fmt"
)func
main()
personsalary[
"mike"]=
9000
fmt.
println
("original person salary"
, personsalary)
newpersonsalary := personsalary
newpersonsalary[
"mike"]=
18000
fmt.
println
("person salary changed"
, personsalary)
}執行結果:
original person salary map
[steve:
12000 jamie:
15000 mike:
9000
] person salary changed map
[steve:
12000 jamie:
15000 mike:
18000
]
go語言之 map集合
map 是一種無序的鍵值對的集合。map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,map 是無序的,我們無法決定它的返回順序,這是因為 map 是使用 hash 表來實現的 下面看具體例項 pac...
深度解密Go語言之map
1 實現map最主要的資料結構有兩種 雜湊查詢表 hashtable 搜尋樹 searchtree go語言的map採用雜湊查詢表實現。2 雜湊查詢表一般會存在 碰撞 的問題。有兩種常用解決辦法 鍊錶法和開放位址法。go語言採用的是鍊錶法。3 自平衡搜尋樹法的最差搜尋效率是 o logn 而雜湊查詢...
Go語言學習筆記十五 Go語言map的基本操作
基本操作都在以下 裡面啦 1 package main 23 import fmt 45 func main 26fmt.println b 27 b beijing 11111 28 b guangzhou 33333 29 b shenzhen 444444 30fmt.println b 31...