[英]Optional type behaviour with properties and methods
不能使用可选链接修改可选元素的属性是否正确?
class Something {
var mark:Person?
func changeAge{
mark = Person()
mark?.age = 40 <--- IT DOESN'T WORK.
mark?.sayHello() <----- IT WORKS
}
}
尝试对age
属性进行更改时,出现age
错误: Cannot assign to the result of this expression
但是我可以调用方法sayHello
。 由于这两个元素隔间属于Person的实例,因此我无法理解为什么我无法访问其属性,但可以访问方法。
编辑:我知道我可以使用强制展开或可选绑定...我只是在问为什么我不能以这种方式访问属性,但可以访问方法。
好吧,如果它为nil, 则无法访问该方法-仅当mark?
时才调用该方法mark?
不为零。 如果有mark?
则分配给属性毫无意义mark?
为零,如果不是(并且您确定不是),则可以分配给mark!
。 如果不确定是否为零,请使用:
if let m = mark {
m.age = 40
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.