Go語言之Map的使用(十五)

2021-10-25 08:24:49 字數 2812 閱讀 2638

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...