中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言基礎之怎么使用Map

發布時間:2021-10-25 14:41:27 來源:億速云 閱讀:178 作者:iii 欄目:編程語言

這篇文章主要講解了“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這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富蕴县| 永登县| 建水县| 青田县| 衡东县| 临颍县| 二连浩特市| 河曲县| 张家界市| 高邮市| 广平县| 佛坪县| 中山市| 收藏| 宜黄县| 琼结县| 高碑店市| 顺昌县| 麻栗坡县| 绥中县| 上饶市| 孝昌县| 镇原县| 张家口市| 高要市| 永修县| 佛冈县| 卢龙县| 麻阳| 内江市| 黑水县| 阜城县| 都匀市| 清新县| 思茅市| 什邡市| 漳州市| 石家庄市| 万源市| 陵川县| 深圳市|