Arrays 如何在golang中初始化和设置二维数组
我正在尝试simplay将2D数组作为对象上的字段。我想要一个创建对象并返回它的函数。但是当尝试创建2d数组时,它会返回单个数组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
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(映射[字符串]映射[字符串]布尔)