Warum kann ich beim Erstellen eines Arrays einer verschachtelten Struktur nicht die kurze Array-Konstruktorsyntax verwenden? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Array of Nested Type: Warum beschwert sich der Compiler? 3 answersBetrachten Sie eine Struktur, die in einer anderen Struktur verschachtelt ist:
struct Struct1 {
struct Struct2 {
var name: String?
}
}
Ich möchte ein Array von @ erstellStruct2
Werte. Zuerst habe ich versucht:
var struct2Array = [Struct1.Struct2]()
Aber dies gibt den Compiler-Fehler:
error: invalid use of '()' to call a value of non-function type '[Struct1.Struct2.Type]'
var struct2Array = [Struct1.Struct2]()
Ich kann ein Array erstellen, indem ich den Typ der Variablen deklariere und ein leeres Array verwende, oder mit der ausführlicheren Syntax:
var struct2Array: [Struct1.Struct2] = []
var struct2ArrayVerbose = Array<Struct1.Struct2>()
Aber warum kann ich den Shorthand-Initialisierer nicht für eine verschachtelte Struktur verwenden?