Arrays 如何在golang中初始化和设置二维数组

Arrays 如何在golang中初始化和设置二维数组,arrays,go,Arrays,Go,我正在尝试simplay将2D数组作为对象上的字段。我想要一个创建对象并返回它的函数。但是当尝试创建2d数组时,它会返回单个数组 type Struct struct { X int Y int Grid [][]bool } func NewLifeSimulator(sizeX, sizeY int) *Struct{ s := &Struct{ X: sizeX, Y: sizeY, Gr

我正在尝试simplay将2D数组作为对象上的字段。我想要一个创建对象并返回它的函数。但是当尝试创建2d数组时,它会返回单个数组

type Struct struct {
    X int
    Y int
    Grid [][]bool
}

func NewLifeSimulator(sizeX, sizeY int) *Struct{
    s := &Struct{
        X:    sizeX,
        Y:    sizeY,
        Grid: make([][]bool, sizeX,sizeY),  //Creates a regular array instead of 2D
    }
    return s
}
我需要更改什么才能使我的函数初始化2D数组?

表达式:

make([][]bool, sizeX)
将创建大小为sizeX的
[]bool
s的切片。然后,您必须遍历每个元素,并将它们初始化为
sizeY
的切片。如果需要完全初始化的阵列:

s := &Struct{
        X:    sizeX,
        Y:    sizeY,
        Grid: make([][]bool, sizeX),
    }

// At this point, s.Grid[i] has sizeX elements, all nil

for i:=range s.Grid {
   s.Grid[i]=make([]bool, sizeY)
}

表达式
make([]]bool,sizeX,sizeY)
创建一个
[]]bool
切片,初始大小
sizeX
和容量
sizeY

您也可以使用映射<代码>s:=make(映射[字符串]映射[字符串]布尔)