Swift:使用协议作为数据类型 不明白 如图,协议定义了name只能get,为什么print

Swift:使用协议作为数据类型不明白如图,协议定义了name只能get,为什么println(value.name)还能成功呢?是不是varname时赋值不受影响?即如... Swift:使用协议作为数据类型 不明白

如图,协议定义了name只能get,为什么println(value.name)还能成功呢?
是不是var name时赋值不受影响?即如果var ......之后再次修改value.name就不行了?
展开
 我来答
修怀芹26
2015-09-06 · TA获得超过1208个赞
知道小有建树答主
回答量:695
采纳率:75%
帮助的人:458万
展开全部

这里变量value是Name类型,因在Name协议中定义的为{get},所属是不能使用value.name = "new name"的,该属性是只读的。

protocol Name {
    var name : String{get}
}
class NewClass:Name {
    var name : String = "hello" //在这是类的内部,可以对该属性进行赋值操作
}
var value :Name = NewClass()

value.name = "World" //这里编译错误,只读属性不可赋值

println(value.name)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式