Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對)
map 的遍歷過程使用 for range 循環(huán)完成,代碼如下:
scene := make(map[string]int)
scene["route"] = 66
scene["brazil"] = 4
scene["china"] = 960
for k, v := range scene {
fmt.Println(k, v)
}
遍歷對于Go語言的很多對象來說都是差不多的,直接使用 for range 語法即可,遍歷時,可以同時獲得鍵和值,如只遍歷值,可以使用下面的形式:
for _, v := range scene {
將不需要的鍵使用_改為匿名變量形式。
只遍歷鍵時,使用下面的形式:
for k := range scene {
無須將值改為匿名變量形式,忽略值即可。
注意:遍歷輸出元素的順序與填充順序無關,不能期望 map 在遍歷時返回某種期望順序的結果。
如果需要特定順序的遍歷結果,正確的做法是先排序,代碼如下:
scene := make(map[string]int)
// 準備map數(shù)據(jù)
scene["route"] = 66
scene["brazil"] = 4
scene["china"] = 960
// 聲明一個切片保存map數(shù)據(jù)
var sceneList []string
// 將map數(shù)據(jù)遍歷復制到切片中
for k := range scene {
sceneList = append(sceneList, k)
}
// 對切片進行排序
sort.Strings(sceneList)
// 輸出
fmt.Println(sceneList)
代碼輸出如下:
[brazil china route]
代碼說明如下:
- 第 1 行,創(chuàng)建一個 map 實例,鍵為字符串,值為整型。
- 第 4~6 行,將 3 個鍵值對寫入 map 中。
- 第 9 行,聲明 sceneList 為字符串切片,以緩沖和排序 map 中的所有元素。
- 第 12 行,將 map 中元素的鍵遍歷出來,并放入切片中。
- 第 17 行,對 sceneList 字符串切片進行排序,排序時,sceneList 會被修改。
- 第 20 行,輸出排好序的 map 的鍵。
sort.Strings 的作用是對傳入的字符串切片進行字符串字符的升序排列,排序接口的使用將在后面的章節(jié)中介紹。
到此這篇關于Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對)的文章就介紹到這了,更多相關Go語言遍歷map內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Go并發(fā)編程實現(xiàn)數(shù)據(jù)競爭
本文主要介紹了Go并發(fā)編程實現(xiàn)數(shù)據(jù)競爭,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
Golang中 import cycle not allowed 問題
這篇文章主要介紹了Golang中 import cycle not allowed 問題的解決方法,問題從描述到解決都非常詳細,需要的小伙伴可以參考一下2022-03-03
解決golang 反射interface{}做零值判斷的一個重大坑
這篇文章主要介紹了解決golang 反射interface{}做零值判斷的一個重大坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
用go語言實現(xiàn)WebAssembly數(shù)據(jù)加密的示例講解
在Web開發(fā)中,有時候為了提升安全性需要對數(shù)據(jù)進行加密,由于js代碼相對比較易讀,直接在js中做加密安全性較低,而WebAssembly代碼不如js易讀,本文提供一個用go語言實現(xiàn)的WebAssembly數(shù)據(jù)加密示例,需要的朋友可以參考下2024-03-03

