Berechnet nur-lese-Eigenschaft vs.-Funktion in Swift

In der Einleitung zu Swift WWDC-session, eine nur-lese-Eigenschaft description ist nachgewiesen:

class Vehicle {
    var numberOfWheels = 0
    var description: String {
        return "\(numberOfWheels) wheels"
    }
}

let vehicle = Vehicle()
println(vehicle.description)

Gibt es irgendwelche Auswirkungen auf die Wahl der oben erwähnten Ansatz über die Verwendung einer Methode statt:

class Vehicle {
    var numberOfWheels = 0
    func description() -> String {
        return "\(numberOfWheels) wheels"
    }
}

let vehicle = Vehicle()
println(vehicle.description())

Scheint es mir, dass die offensichtlichsten Gründe, die Sie wählen würde, eine nur-lese-berechnete Eigenschaft sind:

  • Semantik - in diesem Beispiel macht es Sinn für description zu werden, eine Eigenschaft der Klasse, sondern als eine Aktion, die es ausführt.
  • Kürze/Klarheit - verhindert, dass die Notwendigkeit der Verwendung von leeren Klammern, wenn immer der Wert.

Deutlich das obige Beispiel ist zu einfach, aber gibt es noch andere gute Gründe für die Wahl einen über den anderen? Zum Beispiel gibt es einige Funktionen oder Eigenschaften leiten würde Ihre Entscheidung, welche zu benutzen?


N. B. Auf den ersten Blick scheint dies ein Recht häufiges OOP-Frage, aber ich bin daran interessiert zu wissen, dass die Swift-spezifische features, die führen würde, die beste Praxis bei der Verwendung dieser Sprache.

Uhr 204 Sitzung - "Nicht zu Verwenden Wenn @property" Es hat einige Tipps
warten Sie, können Sie eine nur-Lesen-Eigenschaft und überspringen Sie die get {}? Ich wusste das nicht, danke!
WWDC14-Sitzung 204 kann hier gefunden werden (video und Folien), developer.apple.com/videos/play/wwdc2014/204

InformationsquelleAutor Stuart | 2014-06-04

Schreibe einen Kommentar