为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 for 循环遍历二维数组

如何使用 for 循环遍历二维数组

Go
鸿蒙传说 2022-06-01 16:35:20
package mainimport (    "fmt")func main() {    grid := [][]int{        {0, 1, 2, 3},        {4, 5, 6, 7},    }    for _, array := range grid[0] {        for j := range array {            fmt.Print(array[j], " ")        }        fmt.Println()    }}这就是我现在所拥有的,我正在尝试遍历每一列,但我得到以下编译错误./prog.go:13:12: cannot range over array (type int)网格是 [][]int 数组。我正在尝试为每一列设置数组并遍历该列。
查看完整描述

2 回答

?
www说

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)


查看完整回答
反对 回复 2022-06-01
?
九州编程

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)

        }

    }

}


查看完整回答
反对 回复 2022-06-01
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号