Почему я не могу использовать короткий синтаксис конструктора Array при создании массива вложенной структуры? [Дубликат]
На этот вопрос уже есть ответ здесь:
Массив вложенного типа: почему компилятор жалуется? 3 ответаРассмотрим структуру, вложенную в другую структуру:
struct Struct1 {
struct Struct2 {
var name: String?
}
}
Я хочу создать массивStruct2
ценности. Сначала я попробовал:
var struct2Array = [Struct1.Struct2]()
Но это дает ошибку компилятора:
error: invalid use of '()' to call a value of non-function type '[Struct1.Struct2.Type]'
var struct2Array = [Struct1.Struct2]()
Я могу создать массив, объявив тип переменной и используя пустой массив, или с более подробным синтаксисом:
var struct2Array: [Struct1.Struct2] = []
var struct2ArrayVerbose = Array<Struct1.Struct2>()
Но почему я не могу использовать сокращенный инициализатор для вложенной структуры?