Подтвердить что ты не робот

Swift init Array с емкостью

Как инициализировать массив в swift с определенной емкостью?

Я пробовал:

var grid = Array <Square> ()
grid.reserveCapacity(16)

но получите ошибку

expected declaration 
4b9b3361

Ответ 1

Как насчет:

class Square {

}

var grid = Array<Square>(count: 16, repeatedValue: Square());

Хотя это вызовет конструктор для каждого квадрата.

Если вы создали массив с дополнительными квадратными экземплярами, которые вы могли бы использовать:

var grid2 = Array<Square?>(count: 16, repeatedValue: nil);

EDIT: С Swift3 эта подпись инициализатора изменилась на следующий:

var grid3 = Array<Square>(repeating: Square(), count: 16)

или

var grid4 = [Square](repeating: Square(), count: 16)

Конечно, оба они также работают с Square? и nil.

Ответ 2

var actions:[AnyObject?] = [AnyObject?](count: 3, repeatedValue: nil)

Ответ 3

Try:

var grid = Array<Square>(count: 16, repeatedValue: aSquare)

Ответ 4

Swift 3

var grid : [Square]?
grid?.reserveCapacity(16)

Я считаю, что это может быть достигнуто и в одной строке.