15

多次元配列で range と len を使用することは可能ですか?

var a [3]int8 または

package main

func main () {    
        var a [3][5]int8

        for h := range a {
                println(h)
        }
        println(len(a))
}

両方とも生成し 0 1 2 3 ますか?

dystroy's answer のおかげで、私が適応できた 3 次元配列の書き込みと読み取りの例を次に示します (この例を見つけるのに非常に苦労したため、ここに投稿するので、他の人に役立つかもしれません)。

package main
func main() {
    var a [3][5][7]uint8

    //write values to array
    for x, b := range a {
        for y, c := range b {
            for z, _ := range c {
                    a[x][y][z] = uint8(x*100+y*10+z)
                }
        }   
    }

    //read values from array
    for _, h := range a {
        for _, i := range h {
            for _, j := range i {
                print(j, "\t")
            }
            println()
        }
        println()
    }

}
4

3 に答える 3

2

範囲を使用したソリューションは既に提供されているので、長さ (len) を使用して golang で多次元配列を通過する方法について説明します。

したがって、配列がある場合arr[][]

[1,2,3] [4,5,6]

これで、len(arr)出力 = 2 になります。

ながらlen(arr[1]) will output = 3

サンプル コードはこちらで提供されています: https://play.golang.org/p/XerzPhkQrhU

于 2020-05-07T19:03:26.370 に答える