Во введении в сеанс 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
быть свойством класса, а не действием, которое он выполняет. - Краткость / Четкость - предотвращает необходимость использования пустых скобок при получении значения.
Очевидно, что приведенный выше пример слишком прост, но есть ли другие веские причины выбрать один из них? Например, есть ли какие-то особенности функций или свойств, которые помогут вам решить, какие из них использовать?
NB. На первый взгляд это кажется довольно частым вопросом ООП, но я очень хочу знать о каких-либо специфических для Swift функциях, которые могли бы служить руководством для наилучшей практики использования этого языка.