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])