У вступі до сеансу 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 На перший погляд це здається досить поширеним питанням OOP, але я зацікавлений у знанні будь-яких особливостей Swift, які б керували найкращою практикою використання цієї мови.
get {}
? Я не знав цього, дякую!