范围关键字和Go中的2d切片
我第一次尝试围棋。在过去一个小时左右的时间里,我一直不明白为什么这段代码不起作用范围关键字和Go中的2d切片,go,Go,我第一次尝试围棋。在过去一个小时左右的时间里,我一直不明白为什么这段代码不起作用 grid := make([][]string, 2) for _, row := range grid { row = []string{"foo", "bar"} } fmt.Println(grid) 我希望它能打印出像这样的东西 [ ["foo", "bar"] ["foo", "bar"] ] 但它拒绝编译声明了且未使用的消息行 显然,我在2d切片和range关键字方面遗漏了一些东西。
grid := make([][]string, 2)
for _, row := range grid {
row = []string{"foo", "bar"}
}
fmt.Println(grid)
我希望它能打印出像这样的东西
[
["foo", "bar"]
["foo", "bar"]
]
但它拒绝编译声明了且未使用的消息行
显然,我在2d切片和range
关键字方面遗漏了一些东西。有什么想法吗?行
不是对网格
中的值的引用,它是切片值的副本。错误是因为您为行
分配了一个新的切片,但从未使用该值
这更可能是您想要的:
行
不是对网格
中的值的引用,而是切片值的副本。错误是因为您为行
分配了一个新的切片,但从未使用该值
这更可能是您想要的:
grid := make([][]string, 2)
for i := range grid {
grid[i] = []string{"foo", "bar"}
}
fmt.Println(grid)