go語音基礎之map介紹和使用
阿新 • • 發佈:2019-01-09
1、map介紹
Go語言中的map(對映、字典)是一種內建的資料結構,它是一個無序的key—value對的集合,比如以身份證號作為唯一鍵來標識一個人的資訊。
2、map示例
map格式為:
map[keyType]valueType
在一個map裡所有的鍵都是唯一的,而且必須是支援==和!=操作符的型別,切片、函式以及包含切片的結構型別這些型別由於具有引用語義,不能作為對映的鍵,使用這些型別會造成編譯錯誤:
dict := map[ []string ]int{} //err, invalid map key type []string
map值可以是任意型別,沒有限制。map裡所有鍵的資料型別必須是相同的,值也必須如何,但鍵和值的資料型別可以不相同。
注意:map是無序的,我們無法決定它的返回順序,所以,每次列印結果的順利有可能不同。
3、map的使用
示例2:
package main //必須有個main包 import "fmt" func main() { //定義一個變數, 型別為map[int]string var m1 map[int]string fmt.Println("m1 = ", m1) //對於map只有len,沒有cap fmt.Println("len = ", len(m1)) //可以通過make建立 m2 := make(map[int]string) fmt.Println("m2 = ", m2) fmt.Println("len = ", len(m2)) //可以通過make建立,可以指定長度,只是指定了容量,但是裡面卻是一個數據也沒有 m3 := make(map[int]string, 2) //指定容量為2(0 1 2),會自動擴衝 m3[1] = "mike" //元素的操作 m3[2] = "go" m3[3] = "c++" fmt.Println("m3 = ", m3) fmt.Println("len = ", len(m3)) //常用方法,推薦使用 //初始化 //鍵值是唯一的 m4 := map[int]string{1: "mike", 2: "go", 3: "c++"} fmt.Println("m4 = ", m4) }
執行結果:
m1 = map[] len = 0 m2 = map[] len = 0 m3 = map[1:mike 2:go 3:c++ 4:python] len = 4
//常用方法,推薦使用
m4 = map[1:mike 2:go 3:c++]