【问题标题】:How to initialize and set a 2D array in golang [duplicate]如何在golang中初始化和设置二维数组[重复]
【发布时间】:2020-11-24 03:07:45
【问题描述】:

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

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
}

我需要改变什么才能让我的函数初始化一个二维数组?

【问题讨论】:

  • 您也可以使用地图。 s := make(map[string]map[string]bool)

标签: arrays go


【解决方案1】:

表达式:

make([][]bool, sizeX)

将创建一个大小为sizeX 的[]bools 切片。然后你必须遍历每个元素并将它们初始化为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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-10
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多