ในเซสชัน Introduction to 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 ที่จะแนะนำแนวทางปฏิบัติที่ดีที่สุดเมื่อใช้ภาษานี้