golang中的map就相當於python中的dict,key:value形式,無序,key唯一。
廢話少說,上例子:
package main
import "fmt"
func main()
fmt.println(animal)
的增刪改查--增
animal["age"] = "18"
fmt.println(animal)
的增刪改查--刪
delete(animal, "age")
fmt.println(animal)
的增刪改查--改(golang的map是引用型別,兩個map同時指向同乙個底層,修改其中乙個,另乙個也會改變(深拷貝))
animal["***"] = "human"
fmt.println(animal)
的增刪改查--查
fmt.println(animal["name"])
fmt.println(animal["age"])
for k, v := range animal
}
執行結果:
hou******
map[name:hou****** ***:man]
map[age:18 name:hou****** ***:man]
map[name:hou****** ***:man]
map[name:hou****** ***:human]
hou******
name hou******
*** human
package main
import "fmt"
func main()
fmt.println(animal)
if v, ok := animal["name"]; ok else
}
執行結果:
map[name:hou****** ***:man]
存在key= hou******
3.map排序
1).根據key排序
package main
import (
"fmt"
"sort"
)func main()
fmt.println(animal)
arr := string{}
for k := range animal
fmt.println(arr)
sort.strings(arr)
fmt.println(arr)
for _, key := range arr
}
執行結果:
map[a:2 b:4 c:1 d:3]
[d a c b]
[a b c d]
a 2b 4
c 1d 3
2).根據value排序
思路是直接不用map,用struct存放key和value,實現sort介面,就可以呼叫sort.sort進行排序了
package main
import (
"fmt"
"sort"
)type pair struct
type pairlist pair
func (p pairlist) swap(i, j int)
func (p pairlist) len() int
func (p pairlist) less(i, j int) bool
func main()
p := make(pairlist, len(m))
i := 0
for k, v := range m
i ++
} sort.sort(p)
fmt.println(p)
for _,a := range p
}
執行結果:
[ ]
b 16
a 18
c 21
e 23
d 35
Golang基礎 資料型別 map
var m map int string fmt.println m fmt.printf t n m 在字典中不能使用cap,只能用len n make map int string,3 map是無序的,自動擴容 n 1 1 n 2 2 n 3 3 n 4 4 fmt.println n l ma...
map資料型別
map資料型別是乙個類似於物件的資料型別 大型專案中會經常使用 通過 建構函式來定義map資料型別 const map new map 如果需要在定義的同時進行賦值,賦值的引數必須是二維陣列形式 二維陣列,統一都是兩個單元,第乙個單元是map的鍵名,第二個單元是map的數值 二維陣列,第乙個單元,也...
Golang 資料型別
注釋 行注釋 塊注釋 識別符號 除了數字開頭的不允許,符號開頭的不允許,關鍵字不允許,其他的unicode字元組合都可以。33 也可以是識別符號,我們 也可以是識別符號。識別符號也區分大小寫。以大寫字母開頭的識別符號是公開的。其他任何識別符號都是私有的。空識別符號 是乙個佔位符,用於賦值操作的時候,...