Как позволить каждому индексу массива иметь экземпляр структуры - PullRequest
0 голосов
/ 06 июля 2019

У меня есть двумерный массив 5x5 в Swift.Я пытаюсь, чтобы каждый элемент массива представлял структуру, которая имеет такие свойства, как стоимость и эвристика.например, элемент grid[0][0] должен иметь значения стоимости и эвристики.

Реализация Swift:

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 Ответ

3 голосов
/ 06 июля 2019

Вам нужен массив 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...