go語言基礎資料結構學習 ---- 字典(map)
阿新 • • 發佈:2018-11-21
go語言基礎資料結構學習–> 字典(map)
go 語言中的字典和python 中的字典特性差不多
相同: 鍵值對, 無序集合, 每個鍵都是唯一的, 對一個鍵多次賦值會更新當前鍵的值;
不同: go語言的字典裡面的型別是定好的, 不可變更, python可以隨意寫型別.
package main import "fmt" //字典和python是一樣, 無序的 //宣告新的型別 type Fei struct { id int name string } type Dic map[string]int func main() { //宣告字典 dict := make(map[string]string) dicts := map[string]int{ "age": 10, "丙總": 2} //新型別 result := make(map[int]*Fei) result[0] = &Fei{ id: 6300, name: "刀妹"} letter := []string{"a", "b", "c", "d", "e", "f", "g", "h"} //陣列 //用 dict[name] = value 來設定值和修改 dict["name"] = "薇恩" dict["age"] = "18" dict["label"] = "小飛" //新型別的值修改 ss := result[0] ss.id = 4800 //列印字典的值 name := dict["name"] res := dict["res"] fmt.Println(name) fmt.Println(res) //列印字典元素個數 fmt.Println("lens", len(dict)) //刪除字典元素, 有則刪除, 無則不刪 delete(dict, "label") delete(dict, "ask") //刪除全部需要迴圈 for k := range dict{ delete(dict, k) } //批量新增字典 for k,v := range letter{ fmt.Println("還可以", k, v) dicts[v] = k } fmt.Println(dict) fmt.Println(dicts) fmt.Println(result[0]) //字典的巢狀操作 respon := make(map[string]Dic) DicNum := make(Dic) //make 初始化, 分配記憶體地址, 不為 nil DicNum["id"] = 1 DicNum["age"] = 2 respon["ids"] = DicNum respon["type"] = Dic{"id": 11, "age": 22} fmt.Println(respon) }