我第一次尝试围棋。在过去的一个小时左右,我一直不知道为什么这个代码不起作用。
grid := make([][]string, 2)
for _, row := range grid {
row = []string{"foo", "bar"}
}
fmt.Println(grid)
我希望它能打印出类似的东西
[
["foo", "bar"]
["foo", "bar"]
]
但是它拒绝用消息CCD_ 1进行编译。
很明显,我遗漏了一些关于2d切片和range
关键字的内容。有什么想法吗?
row
不是对grid
中值的引用,它是切片值的副本。错误是因为您为row
分配了一个新切片,但从未使用该值。
这很可能是你想要的:
http://play.golang.org/p/86yHqw_JX-
grid := make([][]string, 2)
for i := range grid {
grid[i] = []string{"foo", "bar"}
}
fmt.Println(grid)