【发布时间】:2016-06-04 05:02:52
【问题描述】:
我的印象是,只有当我们想要分配给双映射时,才会发生分配给 nil 映射错误的条目,也就是说,当尝试分配更深级别的映射而更高级别的映射时不存在,例如:
var mm map[int]map[int]int
mm[1][2] = 3
但它也发生在一个简单的地图上(尽管以结构为键):
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)
}
可能出了什么问题?
【问题讨论】:
标签: dictionary go