获取2d切片的尺寸

时间:2017-08-21 07:13:11

标签: go

假设我有一个4 by 5 2d数组

array := [][]byte{
    {1, 0, 1, 0, 0},
    {1, 0, 1, 1, 1},
    {1, 1, 1, 1, 1},
    {1, 0, 0, 1, 0},
}

如何获取此数组的列和宽度?我想在这个数组上做一个嵌套循环,但是函数中传入的数组可能会有所不同。

2 个答案:

答案 0 :(得分:4)

只需获取len的{​​{1}}和array中任何元素的len

array

注意,您使用的是2d切片,而不是数组。阅读有关Go slices here的更多信息。

答案 1 :(得分:0)

如果只想遍历具有多个维的数组,则还可以在数组上进行嵌套范围。

for i, byteArr := range array {
    for j, value := range byteArr {
        fmt.Println("i:", i)
        fmt.Println("j:", j)
        fmt.Println("byte:", value)
    }
}

如果要循环并忽略其索引:

for _, byteArr := range array {
    for _, value := range byteArr {
        fmt.Println("byte:", value)
    }
}

Read here for more..