Nehmen wir diese Situation an: Ich habe ein Array von Objekten, und ich möchte die Instanzmethode auf jedem von ihnen aufrufen. Ich kann so etwas tun:Aufrufen der Instanzmethode für jedes Objekt in Array
//items is an array of objects with instanceMethod() available
items.forEach { $0.instanceMethod() }
Die gleiche Situation ist mit map
. Zum Beispiel möchte ich mit mappingInstanceMethod
jedes Objekt, um etwas anderes kartieren, die Wert zurückgibt:
let mappedItems = items.map { $0.mappingInstanceMethod() }
Gibt es eine sauberere Möglichkeit, das zu tun?
Zum Beispiel in Java kann man tun:
items.forEach(Item::instanceMethod);
statt
items.forEach((item) -> { item.instanceMethod(); });
Ist similiar Syntax in Swift verfügbar?
Wenn ich Ihre Frage richtig verstanden hat, dann ist es hier beantwortet: [? Gibt es eine Möglichkeit Instanz Funktion zu verweisen, wenn SequenceType.forEach Aufruf] (http://stackoverflow.com/questions/34049116/ is-there-a-way-zu-Referenz-Instanz-Funktion-wenn-Aufruf-Sequenztyp-foreach). - Und die kurze Antwort ist "nein", Sie können nicht einfach "items.forEach (Item.instanceMethod)" in Swift aufrufen, da die Parameter der Curry-Funktion in der falschen Reihenfolge sind. –
... mit anderen Worten: was du machst ist schon ein sauberer Swifty Weg. –