¿Por qué no puedo usar la sintaxis corta del constructor de matrices al crear una matriz de una estructura anidada? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Matriz de tipo anidado: ¿por qué se queja el compilador? 3 respuestasConsidere una estructura anidada dentro de otra estructura:
struct Struct1 {
struct Struct2 {
var name: String?
}
}
Quiero crear una serie deStruct2
valores. Al principio intenté:
var struct2Array = [Struct1.Struct2]()
Pero esto da el error del compilador:
error: invalid use of '()' to call a value of non-function type '[Struct1.Struct2.Type]'
var struct2Array = [Struct1.Struct2]()
Puedo crear una matriz declarando el tipo de la variable y usando una matriz vacía, o con la sintaxis más detallada:
var struct2Array: [Struct1.Struct2] = []
var struct2ArrayVerbose = Array<Struct1.Struct2>()
Pero, ¿por qué no puedo usar el inicializador abreviado para un Struct anidado?