GO學習 11 Go語言基礎之map

2022-06-07 22:15:10 字數 2648 閱讀 7240

go語言中提供的對映關係容器為map,其內部使用雜湊表(hash)實現。

map是一種無序的基於key-value的資料結構,go語言中的map是引用型別,必須初始化才能使用。

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)

}

func

main()

s =(s,3

) fmt.

printf

("%+v\n"

, s)

m["q1mi"

]= s

s =(s[:1]

, s[2:

]...

) fmt.

printf

("%+v\n"

, s)

fmt.

printf

("%+v\n"

, m[

"q1mi"])

}

Go學習筆記(11)Go結構體struct

go的結構體是一種復合型別,它由一系列屬性 字段 組成,每個屬性 字段 都有自己的型別和值。結構體的字段可以是任何型別,甚至是結構體本身 函式 介面等 在go中沒有類的概念,因此結構體經常被用來替代物件導向中的類的操作 結構體的定義格式如下 type structname struct 下面是乙個結...

1 1Go環境搭建之Linux

1.ssh遠端登入linux伺服器,可選用iterm xshell ssh root ip2.建議配置好阿里雲yum源 epel源 安裝git yum install gitcd opt wget 4.解壓縮go原始碼包,確認當前linux系統版本是32位還是64位,再選擇go原始碼包 檢視linu...

Go筆記 1 1 Go開發環境搭建

golang的學習開始,就是開發環境的搭建。我正在學習酷酷的 golang,可點此檢視帖子golang學習筆記彙總。在完成安裝包的安裝之後,你只需要配置 gopath這乙個環境變數就可以開始使用 go 語言進行開發了,其它的環境變數安裝包均會進行自動設定。在預設情況下,go 將會被安裝在目錄c go...