我的印象是,只有当我们想要分配给双映射时,才会发生在 nil 映射错误中的条目分配,也就是说,当试图分配更深级别的映射而更高级别的映射没有时存在,例如:
var mm map[int]map[int]int
mm[1][2] = 3
但它也发生在一个简单的地图上(尽管以 struct 作为键):
package main
import "fmt"
type COO struct {
x int
y int
}
var neighbours map[COO][]COO
func main() {
for i := 0; i < 30; i++ {
for j := 0; j < 20; j++ {
var buds []COO
if i < 29 {
buds = append(buds, COO{x: i + 1, y: j})
}
if i > 0 {
buds = append(buds, COO{x: i - 1, y: j})
}
if j < 19 {
buds = append(buds, COO{x: i, y: j + 1})
}
if j > 0 {
buds = append(buds, COO{x: i, y: j - 1})
}
neighbours[COO{x: i, y: j}] = buds // <--- yields error
}
}
fmt.Println(neighbours)
}
有什么问题?
qq_遁去的一_1
海绵宝宝撒
相关分类