我正在学习适用于iOS 8/OSX10.10的Swift,遵循this tutorial,术语“解包值”被多次使用,就像下面这段(在对象和类下面):
当使用可选值时,您可以写?在方法、属性和下标等操作之前。如果前面的值?是不是零,后面的都是?被忽略,并且整个表达式的值为nil。否则,取消包装可选值,以及?之后的所有内容。对未包装的值执行操作。在这两种情况下,整个表达式的值都是可选值。
let optionalSquare: Square? = Square(sideLength: 2.5, name: "optional square")
let sideLength = optionalSquare?.sideLength
我不明白,我在网上搜索,但没有运气。
这意味着什么?
编辑
根据Cezary的回答,原始代码和最终解决方案(在操场上测试)的输出之间存在细微的差异:
原始代码
塞扎里解决方案
在第二种情况下,超类的属性显示在输出中,而在第一种情况下,有一个空对象。
两种情况下的结果不是应该是相同的吗?
相关问答:
https://stackoverflow.com/questions/24034483
复制相似问题