Na sessão de introdução ao Swift WWDC, uma propriedade somente leitura description
é demonstrada:
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description)
Existem implicações em escolher a abordagem acima em vez de usar um método:
class Vehicle {
var numberOfWheels = 0
func description() -> String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description())
Parece-me que os motivos mais óbvios para você escolher uma propriedade computada somente leitura são:
- Semântica - neste exemplo, faz sentido
description
ser uma propriedade da classe, ao invés de uma ação que ela executa. - Brevidade / Clareza - evita a necessidade de usar parênteses vazios ao obter o valor.
Obviamente, o exemplo acima é muito simples, mas existem outras boas razões para escolher um em vez do outro? Por exemplo, existem alguns recursos de funções ou propriedades que orientariam sua decisão de qual usar?
NB À primeira vista, esta parece ser uma pergunta OOP bastante comum, mas estou ansioso para saber de quaisquer recursos específicos do Swift que orientariam as melhores práticas ao usar esta linguagem.
get {}
? Eu não sabia disso, obrigado!