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

创建3维切片(或3个以上)

创建3维切片(或3个以上)

Go
慕仙森 2021-05-15 18:23:25
如何在Go中创建3维(或更多维)切片?
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

var xs, ys, zs = 5, 6, 7 // axis sizes

var world = make([][][]int, xs) // x axis

func main() {

    for x := 0; x < xs; x++ {

        world[x] = make([][]int, ys) // y axis

        for y := 0; y < ys; y++ {

            world[x][y] = make([]int, zs) // z axis

            for z := 0; z < zs; z++ {

                world[x][y][z] = (x+1)*100 + (y+1)*10 + (z+1)*1

            }

        }

    }

}

这显示了使制作n维切片更容易的模式。


查看完整回答
反对 回复 2021-05-24
?
HUWWW

TA贡献1874条经验 获得超12个赞

您确定需要多维切片吗?如果n维空间的维在编译时是已知的/可导出的,则使用数组会更容易且运行时访问效果更好。例子:


package main


import "fmt"


func main() {

        var world [2][3][5]int

        for i := 0; i < 2*3*5; i++ {

                x, y, z := i%2, i/2%3, i/6

                world[x][y][z] = 100*x + 10*y + z

        }

        fmt.Println(world)

}

(也在这里)


输出


[[[0 1 2 3 4] [10 11 12 13 14] [20 21 22 23 24]] [[100 101 102 103 104] [110 111 112 113 114] [120 121 122 123 124]]]



查看完整回答
反对 回复 2021-05-24
  • 2 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信