我对Swift协议中使用var和{ get set }关键字存在疑惑。
根据苹果文档:
如果一个协议要求属性同时具有可读性和可写性,那么该属性要求不能由常量存储属性或只读计算属性实现。如果协议仅要求属性具有可读性,则可以使用任何类型的属性来满足需求,如果这对自己的代码有用,则属性也可以是可写的。
属性需求总是声明为变量属性,前缀为var关键字。可读可写属性在其类型声明后加上{ get set },可读属性则在其类型声明后加上{ get }。
我不明白为什么我不能使用let。带有get的协议中的var不就是一个let吗?
就像这样:
protocol someProtocol
{
var someProperty: String { get }
}
这不仅仅是公平的问题:
protocol someProtocol
{
let someProperty: String
}
我漏掉了什么?