2 回答

TA贡献1775条经验 获得超8个赞
您的范围循环非常好,唯一的问题是,如果您对二维数组使用两个循环,那么为什么需要在外循环中使用grid[0] ,只需使用grid就可以了
您更新的工作代码
package main
import (
"fmt"
)
func main() {
grid := [][]int{
{0, 1, 2, 3},
{4, 5, 6, 7},
}
for _, array := range grid {
for j := range array {
fmt.Print(array[j], " ")
}
fmt.Println()
}
}
可运行示例 - https://play.golang.org/p/NIkhFOqyF6g
它给出了错误,因为当您将grid[0]传递给外循环时,它会在内部循环中传递一个整数值,并且它会给出错误cannot range over array (type int)

TA贡献1785条经验 获得超4个赞
您的 inner 似乎缺少一个变量名range。
来自https://tour.golang.org/moretypes/16:
在切片上进行测距时,每次迭代都会返回两个值。第一个是索引,第二个是该索引处元素的副本。
下面的代码有修复(https://play.golang.org/p/6uaM2IEm9lR上的可运行示例)
package main
import (
"fmt"
)
func main() {
grid := [][]int{
{0, 1, 2, 3},
{4, 5, 6, 7},
}
for _, col := range grid {
for _, value := range col {
fmt.Println(value)
}
}
}
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报