Trong phần Giới thiệu về Swift WWDC phiên, một thuộc tính chỉ đọc description
được trình bày:
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description)
Có bất kỳ ý nghĩa nào đối với việc lựa chọn phương pháp trên thay vì sử dụng một phương pháp thay thế:
class Vehicle {
var numberOfWheels = 0
func description() -> String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description())
Đối với tôi, dường như lý do rõ ràng nhất mà bạn chọn thuộc tính được tính chỉ đọc là:
- Ngữ nghĩa - trong ví dụ này, nó có ý nghĩa
description
là thuộc tính của lớp, hơn là một hành động mà nó thực hiện. - Brevity / Clarity - ngăn chặn sự cần thiết phải sử dụng dấu ngoặc đơn trống khi nhận giá trị.
Rõ ràng ví dụ trên quá đơn giản, nhưng có những lý do chính đáng nào khác để chọn cái này hơn cái kia không? Ví dụ: có một số tính năng của các chức năng hoặc thuộc tính sẽ hướng dẫn bạn quyết định sử dụng cái nào không?
NB Thoạt nhìn, đây có vẻ là một câu hỏi OOP khá phổ biến, nhưng tôi rất muốn biết về bất kỳ tính năng cụ thể nào của Swift sẽ hướng dẫn phương pháp thực hành tốt nhất khi sử dụng ngôn ngữ này.
get {}
? Tôi không biết điều đó, cảm ơn!