2014-12-15 14 views
23

Ich habe Schließungen in Swift haben $ 0 drin und manchmal verwenden sie $ 1. Was genau ist $ 0 und was sind andere $ x können Sie verwenden?

Hier sind Beispiele dafür.

applyMutliplication(2, {$0 * 3}) 
array.map({$0 + 1}) 

Vielen Dank!

Antwort

25

Es handelt sich um einen Kurzschreibargumentnamen.

Vom Swift Buch:

„Swift automatisch Stenografie Argumentnamen bietet Verschlüsse Inline, die auf den Werten der Argumente der Schließung durch die Namen beziehen verwendet werden können, auf $ 0, $ 1, $ 2, und so weiter „

-. Apple Inc. “The Swift Programming Language.”

Es hilft, die Ausführlichkeit des Codes zu reduzieren (manchmal auf Kosten der Lesbarkeit), so dass Sie lange Argumentlisten bei der Definition von Schließungen nicht schreiben müssen.

+17

Weil Ausführlichkeit für Verständlichkeit sorgen kann. – zaph

+1

Ja, Sie haben Recht, manchmal hilft Verbosy Lesbarkeit und Verständlichkeit, obwohl das anfängt, an die Meinung zu grenzen. Wie auch immer, ich habe meine Antwort aktualisiert. –

+0

Schöne Veränderung. Das Schreiben von langen Argumentlisten zu reduzieren ist nicht das Endziel, sondern nur eines und es gibt eine automatische Vervollständigung, um zu helfen. Das Endziel sollte Lesbarkeit sein, da der Code im Allgemeinen viele Male gelesen wird. – zaph