Почему я не могу использовать короткий синтаксис конструктора 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>()

Но почему я не могу использовать сокращенный инициализатор для вложенной структуры?

Ответы на вопрос(1)

Ваш ответ на вопрос