Map的使用
package main
import "fmt"
func main() {
? /*
? map:映射,是一種專門用于存儲鍵值對的集合凡纳,屬于引用類型
? 存儲的特點:
? ? A:存儲的是無序的鍵值對
? ? B:鍵不能重復,并且和value值一一對應喷众。
? ? ? map中key不能重復巷屿,如果重復,那么新的value會覆蓋原來的掂僵,程序不會報錯.
? 語法結(jié)構(gòu):
? ? 1.創(chuàng)建map
? ? ? var map1 map[key類型]value類型
? ? ? ? nil map,無法直接使用
? ? ? var map2 = make(map[key類型]value類型)
? ? ? var map3 = map[key類型]value類型{key:value,key:value,key:value...}
? ? 2.添加/修改
? ? ? map[key]=value
? ? ? ? 如果key存在,就可以修改數(shù)據(jù)
? ? ? ? 如果key不存在顷歌,就是添加數(shù)據(jù)
? ? 3.獲取
? ? ? map[key]-->value
? ? ? value,ok :=map[key]
? ? ? ? 根據(jù)key獲取對應的value
? ? ? ? ? 如果key存在锰蓬,value就是對應的數(shù)據(jù),ok為true
? ? ? ? ? 如果key不存在眯漩,value就是值類型的默認值芹扭,ok為false
? ? 4.刪除數(shù)據(jù):
? ? ? delete(map,key)
? ? ? ? 如果key存在麻顶,就可以直接刪除
? ? ? ? 如果key不存在,刪除失敗
? ? 5.長度:
? ? ? len()
? 每種數(shù)據(jù)類型:
? ? int:0
? ? float:0.0-->0
? ? string:""
? ? array:[00000]
? ? sliece:nil
? ? map:nil
? */
? //1.創(chuàng)建map
? var map1 map[int]string
? var map2 = make(map[int]string)
? var map3 = map[string]int{"Go":98,"Python":87,"Java":79,"Heml":93}
? fmt.Println(map1)
? fmt.Println(map2)
? fmt.Println(map3)
? fmt.Println(map1 == nil)
? fmt.Println(map2 == nil)
? fmt.Println(map3 == nil)
? //map1[1] ="hello" //panic: assignment to entry in nil map
? //2.nil map
? if map1 == nil{
? ? map1 = make(map[int]string)
? ? fmt.Println(map1 == nil)
? }
? //3.存儲鍵值對到map中
? //map1[key] = value
? map1[1] ="hello"
? map1[2] ="world"
? map1[3] ="ruby"
? map1[4] =""
? //4.獲取數(shù)據(jù)舱卡,根據(jù)key獲取對應的value值
? //根據(jù)key獲取對應的value辅肾,如果key存在,獲取數(shù)值轮锥,如果key不存在矫钓,獲取的是value值類型的零值
? fmt.Println(map1)
? fmt.Println(map1[3])//根據(jù)key為3,獲取對應的value值
? fmt.Println(map1[33])//""
? //判斷key/value是否存在
? v1,ok := map1[33]
? if ok{
? ? fmt.Println("對應的數(shù)值是:",v1)
? }else{
? ? fmt.Println("操作的key不存在舍杜,獲取到的是零值:",v1)
? }
? //5.修改數(shù)據(jù)
? fmt.Println(map1)
? map1[2] = "虛空"
? fmt.Println(map1)
? //6.刪除數(shù)據(jù)
? delete(map1,3)
? fmt.Println(map1)
? //刪除不存在的鍵
? delete(map1,33)
? fmt.Println(map1)
? //7.長度
? fmt.Println(len(map1))
}
運行輸出:
map[]
map[]
map[Go:98 Heml:93 Java:79 Python:87]
true
false
false
false
map[1:hello 2:world 3:ruby 4:]
ruby
操作的key不存在新娜,獲取到的是零值:
map[1:hello 2:world 3:ruby 4:]
map[1:hello 2:虛空 3:ruby 4:]
map[1:hello 2:虛空 4:]
map[1:hello 2:虛空 4:]
3
Process finished with exit code 0
讀完點個贊,給我的堅持更新注入新的活力既绩。
2022.05.21日更 73/365 天
公眾號:3天時間
往期同類文章:
GO學習 深拷貝和淺拷貝
GO學習 數(shù)組上創(chuàng)建切片
GO學習 slice
GO學習 多維數(shù)組
GO學習 Array類型和排序
GO學習 Array