go基礎類型-MAP

一 說明
map類型也被成爲字典類型,底層是哈希表 單個hashi值相同的話會形成鏈表,存儲多個值
二 快速定位的原因
1 先根據 哈希算法算出hash值得位置
2 具體值如果有多個,就再根據鏈表進行精確定位
三 限制
map 數據類型限制必須是可hash的對象,因爲本質就是根據hash表來實現的
本身是無序的,隨機順序存儲
key本身不能重複 value是可以的
key支持數據類型
  • int
  • float
  • bool
  • string
  • array-1只能是數組,不能是其他類型2 數組類型嵌套類型也只能是支持的類型,不能是切片 map之類的,嵌套也會判斷 v15:=make(map[[2][]sting) 嵌套類型爲字符串切片 也是非法
  • pointer(指針)
  • struct-常用
  • channel
  • type 關鍵字 上述支持的類型 - 新定義的類型也是可以支持的
  • 切片-MAP-FUNCTION是無法比較的
四 聲明
vars:=map[data_type]data_tye{"k":v} 聲明並初始化複製
vars:=make(map[data_type]data_type,容量)
聲明並開闢空間-可以直接使用,如果聲明瞭容量,就代表有容量的個數可以存放k-v
var vars make(map[data_type]data_type 只是聲明並不能直接使用
五 kv-操作
map1["name"] = "小明"
六 循環
for k,v:= range map1{
fmt.Println(key,v)
}

 七 判斷k-v是否存在 

capital,ok := map1 ["status"]/
if(ok){
fmt.Println("status 是",capital)
}else{
fmt.Println("status 不存在")
}
}

八 len()-長度計算

    len()計算map計算的是map內的k-v的個數

 九 刪除 delete()
   delete(map_name,key)

 十 map與結構退

type person struct{ #定義結構體

name string

age  int 

}

var person_list=make(map[int]person,10)  #定義一個map,值爲結構體

stu1:=person{"111",11}#先實例化一個對象

person_list[1]=stu1 # 直接賦值實例化對象

fmt.print(c[1]) #打印

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章