使用 元素类型为map的切片和元素类型为切片的map最需要注意的一点是初始化,
例如就像如下代码:
var a = make([]map[string]int, 8, 8) //完成了对切片的初始化,但map还没有初始化
只是完成了对切片的初始化,但map还没有初始化 ,这样的话map在内存中是不存在的,那就没法用,就需要想办法对,map进行初始化,以下是代码哦
package main
import "fmt"
func main() {
//元素类型为map的切片
var a = make([]map[string]int, 8, 8) //完成了对切片的初始化,但map还没有初始化
fmt.Println(a[0] == nil) //true
a[0] = make(map[string]int, 8) //对map初始化
a[0]["lbdgood"] = 100 //a[0]相当于一个map
fmt.Println(a)
//元素类型为切片的map
fmt.Println("------------------------")
var b = make(map[string][]int, 5) //map初始化
v, ok := b["中国"]
fmt.Println(v, ok)
if ok {
fmt.Println(v)
} else {
b["中国"] = make([]int, 5, 6) //切片初始化
b["中国"][0] = 100
b["中国"][1] = 200
b["中国"][3] = 300
}
fmt.Println(b)
for k, v := range b {
fmt.Println(k, v)
}
}
以下是运行结果噢:
true
[map[lbdgood:100] map[] map[] map[] map[] map[] map[] map[]]
------------------------
[] false
map[中国:[100 200 0 300 0]]
中国 [100 200 0 300 0]
我要回到风里