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]
微信公衆号
掃描下方二維碼關注個人微信公衆号,實時擷取更多幹貨

同步更新至:http://www.randyfield.cn/
出處:http://www.cnblogs.com/RandyField/
本文版權歸作者和部落格園共有,未經許可禁止轉載,否則保留追究法律責任的權利,若有需要請聯系[email protected].