In der Einführung in die Swift WWDC-Sitzung wird eine schreibgeschützte Eigenschaft description
demonstriert:
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description)
Gibt es irgendwelche Auswirkungen, wenn Sie stattdessen den oben genannten Ansatz anstelle einer Methode wählen:
class Vehicle {
var numberOfWheels = 0
func description() -> String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description())
Es scheint mir, dass die offensichtlichsten Gründe, warum Sie sich für eine schreibgeschützte berechnete Eigenschaft entscheiden würden, folgende sind:
- Semantik - In diesem Beispiel ist es sinnvoll
description
, eine Eigenschaft der Klasse zu sein und keine Aktion, die sie ausführt. - Kürze / Klarheit - verhindert, dass beim Abrufen des Werts leere Klammern verwendet werden müssen.
Das obige Beispiel ist natürlich zu einfach, aber gibt es andere gute Gründe, sich für eines zu entscheiden? Gibt es beispielsweise einige Merkmale von Funktionen oder Eigenschaften, die Sie bei Ihrer Entscheidung für eine Verwendung unterstützen?
NB Auf den ersten Blick scheint dies eine häufig gestellte OOP-Frage zu sein, aber ich bin gespannt auf alle Swift-spezifischen Funktionen, die als Best Practice bei der Verwendung dieser Sprache dienen.
get {}
? Das wusste ich nicht, danke!