您好,登錄后才能下訂單哦!
這篇文章主要講解了“Go語言基礎之怎么使用Map”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Go語言基礎之怎么使用Map”吧!
引入map
map,在Python中叫字典,Java中也叫map,PHP中好像列表就帶有map的功能。
map是鍵值對(key-value)存儲結構,是無序的,內部使用哈希(hash)實現,性能很高。
在Go中,map是引用類型
map基本使用
map語法
方式一,聲明時賦值 var 變量名 = map[key類型][value類型]{ key:value, key:value,//必須使用,結尾,否則會報錯 } //方式二,make方式 var 變量名 = make(map[key類型]value類型, 容量(cap)) //如果map是make方式聲明的,第二個參數直接就是容量,元素個數是0,沒有第三個參數
示例
方式一,聲明時賦值
代碼
package main import "fmt" func main() { var stu1 = map[string]string{ "Name": "張三", "Age": "18", "height": "188", //每行都要以,結尾, } var stu2 = map[string]string{ "Name": "李四", "Age": "20", "height": "170", //每行都要以,結尾, } fmt.Println(stu1, stu2) //map[Age:18 Name:張三 height:188] map[Age:20 Name:李四 height:170] }
方式二,make方式
代碼
package main import "fmt" func main() { var stu1 = make(map[string]string,10) stu1["Name"] = "張三" stu1["Age"] = "18" stu1["height"] = "188" var stu2 = make(map[string]string,10) stu2["Name"] = "李四" stu2["Age"] = "20" stu2["height"] = "170" fmt.Println(stu1,stu2) //map[Age:18 Name:張三 height:188] map[Age:20 Name:李四 height:170] }
ps:關于這兩種方式,哪個使用的多。
我的建議是,如果確定有多少個字段,就使用第一種,如果不確定多少個字段,是動態添加的,用第二種。
使用第二種要大概估算好容量,超過會觸發自動擴容機制,可能會產生那么一絲絲的性能影響。
遍歷map(查)
遍歷map,通常只用一種方式for range。
代碼
package main import "fmt" func main() { var stu1 = make(map[string]string, 10) stu1["Name"] = "張三" stu1["Age"] = "18" stu1["height"] = "188" for key, value := range stu1 { //map遍歷時,key值鍵,value是值 fmt.Println(key, value) } }
只遍歷key
package main import "fmt" func main() { var stu1 = make(map[string]string, 10) stu1["Name"] = "張三" stu1["Age"] = "18" stu1["height"] = "188" for key := range stu1 { //只遍歷key fmt.Println(key) } }
修改map的值(改)
package main import "fmt" func main() { //var stu1 = make(map[string]string, 10) //stu1["Name"] = "張三" //stu1["Age"] = "18" //stu1["height"] = "188" // //stu1["Name"] = "張三666"//修改 //fmt.Println(stu1) //同上 var stu1 = map[string]string{ "Name": "張三", "Age": "18", "height": "188", //每行都要以,結尾, } stu1["Name"] = "張三666"//修改 fmt.Println(stu1) }
刪除map里面的值
刪除map里面的值需要用到delete。
代碼
package main import "fmt" func main() { var stu1 = map[string]string{ "Name": "張三", "Age": "18", "height": "188", //每行都要以,結尾, } fmt.Println(stu1) //map[Age:18 Name:張三 height:188] delete(stu1, "Name") //刪除key以及key對應的值 fmt.Println(stu1) //map[Age:18 height:188] }
map取值注意事項
map在取值時,盡可能的判斷一下是否key存在
package main import "fmt" func main() { var stu1 = map[string]string{ "Name": "張三", "Age": "18", "height": "188", //每行都要以,結尾, } //result := stu1["Name"]//key存在,沒問題 //fmt.Println(result)//張三 //result := stu1["Names"]//手一抖,key打錯了 //fmt.Println(result)//結果為空,顯然不是太友好 //取值標準用法 result, ok := stu1["Name"] //如果key存在,ok為true,如果key不存在,ok為false fmt.Println(result,ok)//張三 true if ok { fmt.Println(result) } else { fmt.Println("key不存在") } }
感謝各位的閱讀,以上就是“Go語言基礎之怎么使用Map”的內容了,經過本文的學習后,相信大家對Go語言基礎之怎么使用Map這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。