В сеансе Введение в Swift WWDC показано свойство description
только для чтения:
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description)
Есть ли какие-либо последствия для выбора вышеупомянутого подхода с использованием метода:
class Vehicle {
var numberOfWheels = 0
func description() -> String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description())
Мне кажется, что наиболее очевидными причинами, по которым вы выбрали вычисляемое свойство только для чтения, являются:
- Семантика - в этом примере для
description
имеет смысл свойство класса, а не действие, которое оно выполняет. - Краткость/Ясность - предотвращает необходимость использования пустых круглых скобок при получении значения.
Очевидно, что приведенный выше пример слишком прост, но есть ли другие веские причины выбирать один за другим? Например, существуют ли какие-то функции функций или свойств, которые могли бы определять ваше решение?
N.B. На первый взгляд это кажется довольно распространенным вопросом ООП, но я заинтересован в том, чтобы узнать какие-либо особенности, зависящие от Swift, которые наилучшим образом помогут при использовании этого языка.