Syntax Erklärung: eckige Klammern in Swift

8

Ich studierte Swift und wurde mit folgender Syntax verwirrend:

%Vor%

Schatz ist benutzerdefinierte Klasse, wie folgt deklariert:

%Vor%

In Obj-C eckige Klammern bedeuten Methode, aber was heißt das:

%Vor%

Kann jemand eine Erklärung geben? Danke!

    
Evgeniy Kleban 24.12.2014, 14:08
quelle

2 Antworten

13

Ok, das ist die Bedeutung von

%Vor%
  • var : Sie deklarieren eine Variable
  • Schätze : Der Name Ihrer Variablen
  • [Schatz] : Der Typ Ihrer Variablen, in diesem Fall ist der Typ Array of Treasure, der Compiler erlaubt es Ihnen, nur Objekte des Typs Treasure in Ihr Array einzufügen
  • [] : Das tatsächliche Objekt (Array), auf das Ihre Variable verweist, in diesem Fall ein leeres Array.

z. Wenn Sie möchten, dass das Array 2 Elemente enthält, können Sie

schreiben %Vor%

Hoffe, das hilft.

Aktualisierung: Mein Beispiel kann auch so geschrieben werden

%Vor%

Tatsächlich kann der Compiler dank der Typinferenz den Typ der Variable Schätze beim Betrachten des Typ des zugewiesenen Wertes.

    
Luca Angeletti 24.12.2014, 14:19
quelle
12

[Treasure] ist nur eine Syntax Zucker für Array<Treasure> .

Auf die gleiche Weise [String:Treasure] ist nur eine Syntax Zucker für Dictionary<String,Treasure> .

[] ist nur ein leeres Array des von Ihnen definierten Typs. Genauso ist [:] ein leeres Wörterbuch.

Wenn es um schnelle und eckige Klammern geht, sind die Regeln einfach. Sie werden nur in zwei Situationen verwendet:

1) Arbeiten mit Array- und Dictionary -Typen:

%Vor%

2) für Subskriptionsobjekte , die Subskribierung unterstützen:

%Vor%

Da [ und ] in benutzerdefinierten Operatoren nicht erlaubt sind, sind dies die einzigen Verwendungen für den Moment.

    
siejkowski 24.12.2014 14:13
quelle

Tags und Links