Swift:使用协议作为数据类型 不明白 如图,协议定义了name只能get,为什么print
Swift:使用协议作为数据类型不明白如图,协议定义了name只能get,为什么println(value.name)还能成功呢?是不是varname时赋值不受影响?即如...
Swift:使用协议作为数据类型 不明白
如图,协议定义了name只能get,为什么println(value.name)还能成功呢?
是不是var name时赋值不受影响?即如果var ......之后再次修改value.name就不行了? 展开
如图,协议定义了name只能get,为什么println(value.name)还能成功呢?
是不是var name时赋值不受影响?即如果var ......之后再次修改value.name就不行了? 展开
1个回答
展开全部
这里变量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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询