天天看點

【Golang】快速複習指南QuickReview(三)——map

map

學名:映射關系容器。

俗名:鍵值對

key-value

map跟slice一樣,依然是一個引用類型。

1.C#中的字典

根據map的特點,部落客類比的是

C#

中字典

Dictionary

,同樣都是鍵值對。

//定義 初始化
Dictionary<int, string> dic = new Dictionary<int, string>
{
    {1,"學生"},
    {2,"老師"},
    {3,"家長"}
};

//新增
dic.Add(4, "校長");

//判斷是否含key
if (dic.ContainsKey(1))
{

}

//判斷是否含value
if (dic.ContainsValue("學生")) { }

//周遊字典
foreach (KeyValuePair<int, string> kv in dic)
{

}
//删除指定key的元素
dic.Remove(1);

//清空字典
dic.Clear();
           

2.Golang中的map

2.1 定義 初始化

make(map[KeyType]ValueType, [cap])

,cap可選

testMap := make(map[int]string, 3)
testMap[1] = "學生"
testMap[2] = "老師"
testMap[3] = "家長"
fmt.Println(testMap)
           
map[1:學生 2:老師 3:家長]
           

2.2 周遊

//周遊
for k, v := range testMap {
    fmt.Println(k, v)
}
           
1 學生
2 老師
3 家長
           

2.3 删除

删除,使用内置函數

delete()

func delete(m map[Key]Type, key Key)
           
//删除
delete(testMap, 1)

for k, v := range testMap {
    fmt.Println(k, v)
}
           
3 家長
2 老師
           

2.4 重點來了

切片是一種類型,且使用頻繁,切片就也能作為

map

的值

value

var mapValueSlice = make(map[string][]string, 3)
var sc []string
sc = append(sc, "成都", "綿陽", "宜賓")
var sx = []string{"西安", "漢中", "榆林"}
mapValueSlice["四川"] = sc
mapValueSlice["陝西"] = sx
fmt.Println(mapValueSlice)
           
map[四川:[成都 綿陽 宜賓] 陝西:[西安 漢中 榆林]]
           

最後說一下,golang的源碼讀懂需要基礎文法很牢固,後面的函數,方法接收者,指針,參數,傳回值,通道等等,遠遠一看,中括号

[]

橫飛,

*

,其實萬變不離其宗,都是這些基礎類型按照語義組合而成。

再次強調:這個系列并不是教程,如果想系統的學習,部落客可推薦學習資源。

作者:Garfield

同步更新至個人部落格:http://www.randyfield.cn/

本文版權歸作者所有,未經許可禁止轉載,否則保留追究法律責任的權利,若有需要請聯系[email protected]

微信公衆号

掃描下方二維碼關注個人微信公衆号,實時擷取更多幹貨

【Golang】快速複習指南QuickReview(三)——map

同步更新至:http://www.randyfield.cn/

出處:http://www.cnblogs.com/RandyField/

本文版權歸作者和部落格園共有,未經許可禁止轉載,否則保留追究法律責任的權利,若有需要請聯系[email protected].