如何让每个数组索引都有一个结构实例

时间:2019-07-05 22:00:05

标签: ios arrays swift struct

我在Swift中有一个二维5x5数组。我试图让每个数组项都呈现一个具有成本和启发式等属性的结构。例如,grid[0][0]项应具有成本和启发式值。

快速实施:

struct Spot {
    var cost: Int  // cost
    var heu: Int  // heuristics
}

var grid = [[Int]]

在Javascript中,我以前是这样做的:

function Spot() {
  this.cost = 0;
  this.heu = 0;
}

//This is what I'm looking for something equivalent in Swift
grid[0][0] = new Spot();

抱歉,这似乎很基础,但是我是Swift的初学者。

1 个答案:

答案 0 :(得分:3)

您需要一个Spot个数组[[Spot]]的数组,而不是Int个数组[[Int]]的数组。

struct Spot {
    let cost: Int  // cost
    let heu: Int  // heuristics
}

var grid: [[Spot]] = .init(repeating: .init(repeating: .init(cost: 0, heu: 0), count: 5), count: 5)

grid[0][0] = .init(cost: 10, heu: 5)

print(grid)  // "[[Spot(cost: 10, heu: 5),...
print(grid[0][0].cost)   // 10
print(grid[0][0].heu)    // 5