猿问

Go 中的 range 关键字和二维切片

我第一次尝试围棋。在过去一个小时左右的时间里,我一直不知道为什么这段代码不起作用。


grid := make([][]string, 2)

for _, row := range grid {

    row = []string{"foo", "bar"}

}

fmt.Println(grid)

我希望它打印出类似的东西


[

  ["foo", "bar"]

  ["foo", "bar"]

]

但它拒绝与消息一起编译row declared and not used。


显然,我遗漏了有关 2d 切片和range关键字的内容。有任何想法吗?


PIPIONE
浏览 168回答 1
1回答

呼如林

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)
随时随地看视频慕课网APP

相关分类

Go
我要回答