Por que não consigo usar a sintaxe curta do construtor Array ao criar uma matriz de uma estrutura aninhada? [duplicado]
Esta pergunta já tem uma resposta aqui:
Matriz do tipo aninhado: por que o compilador se queixa? 3 respostasConsidere uma estrutura aninhada dentro de outra estrutura:
struct Struct1 {
struct Struct2 {
var name: String?
}
}
Eu quero criar uma matriz deStruct2
valores. No começo eu tentei:
var struct2Array = [Struct1.Struct2]()
Mas isso dá o erro do compilador:
error: invalid use of '()' to call a value of non-function type '[Struct1.Struct2.Type]'
var struct2Array = [Struct1.Struct2]()
Eu posso criar uma matriz declarando o tipo da variável e usando uma matriz vazia, ou com a sintaxe mais detalhada:
var struct2Array: [Struct1.Struct2] = []
var struct2ArrayVerbose = Array<Struct1.Struct2>()
Mas por que não posso usar o inicializador abreviado para um Struct aninhado?