go map 多维map
来源:原创
时间:2019-03-06
作者:脚本小站
分类:GoLang
map的基本操作:map为无序的键值对集合
package main import "fmt" func main() { var m1 map[int]string // 创建map fmt.Println(m1, len(m1)) m2 := make(map[int]string) // 创建map fmt.Println(m2, len(m2)) m3 := make(map[int]string, 2) // 指定长度 fmt.Println(m3, len(m3)) m3[1] = "hello" m3[2] = "world" m3[3] = "haha" fmt.Println(m3, len(m3)) // 超出长度容量会自动扩充,返回的顺序是无序的 m4 := map[int]string{1: "hello", 2: "world", 3: "haha"} fmt.Println(m4) }
赋值:
package main import "fmt" func main() { m1 := map[int]string{1: "212", 2: "hello"} fmt.Println(m1) m1[2] = "haha" // 原来有值的则修改值 m1[3] = "world" // 没有值则追加值 fmt.Println(m1) }
遍历,判断健值是否存在:
package main import "fmt" func main() { m := map[int]string{1: "aaa", 2: "bbb", 3: "ccc"} for key, value := range m { fmt.Printf("%d --- %s\n", key, value) } // 健名为字符串的map m1 := map[string]string{"1": "aaa", "2": "bbb", "3": "ccc"} for key, value := range m1 { fmt.Printf("%s --- %s\n", key, value) } // 判断健值是否存在 value, exists := m[0] if exists == true { fmt.Println("健值存在", value) } else { fmt.Println("健值不存在") } }
删除元素:
package main import "fmt" func main() { m := map[string]string{"haha": "222", "aaa": "333"} fmt.Println(m) delete(m, "aaa") // 删除键名为aaa的内容 fmt.Println(m) }
map做函数参数:
package main import "fmt" // 引用传递 func del(m map[int]string) { delete(m, 1) } func main() { m := map[int]string{1: "haha", 2: "hello"} del(m) fmt.Println(m) }
多维map:
var shisizhuxing = map[string]map[int]string{ "天气": {0: "良好", 1: "晴朗"}, "空气": {0: "还行"}, } fmt.Println(shisizhuxing["天气"][0])