Я соединил следующий код:Используя массив значений для инициализации новых элементов массива
let tings = [1, 2, 4, 5, 6, 8]
class Foo {
var number: Int
init(something: Int) {
self.number = something
}
}
var list: [Foo] = []
for num in tings {
var temp = Foo(something: tings[num]) //excbadinstruction invop
list.append(Foo(something: 3)) //no error
list.append(Foo(something: Int(4))) //no error
list.append(Foo(something: tings[num])) //excbadinstruction invop
list.append(Foo(something: Int(tings[num]))) //excbadinstruction invop
}
Я не получить то, что проблема с последними двумя линиями, как на мой взгляд вещи [число] также типа Int, и, конечно же, с последней строкой.
Если я укажу, что тип вещей будет [Int], ничего не меняется (что не странно для меня) Я также должен явно указать «что-то», чего я не ожидал, потому что это был первый и единственный аргумент инициализатора.
Я надеюсь, что кто-нибудь сможет объяснить это мне и/или дать правильный путь для этого.
«Int» - это «структура» на языке Swift, и вы не можете индексировать с помощью struct. – gagarwal
'tings' является' [Int] '... не' Int'. Он подписывает массив. – nhgrif
@nhgrif no, tings - [Int], однако tings [num] - это Int – Simon