按照本教程,我正在学习Swift for iOS 8/OSX 10.10 ,并且多次使用术语" unwrapped value ",如本段(在Objects和Class下):
使用可选值时,您可以写吗?在诸如方法,属性和下标之类的操作之前.如果之前的值?是零,一切都在?被忽略,整个表达式的值为零.否则,可选值是解包,并且后面的一切都是?作用于未包装的价值.在这两种情况下,整个表达式的值都是可选值.
let optionalSquare: Square? = Square(sideLength: 2.5, name: "optional square")
let sideLength = optionalSquare?.sideLength
Run Code Online (Sandbox Code Playgroud)
我没有得到它,并在没有运气的情况下在网上搜索.
这意味着什么?
根据Cezary的回答,原始代码的输出与最终解决方案(在操场上测试)之间存在细微差别:


在第二种情况下,超类的属性显示在输出中,而在第一种情况下有一个空对象.
在这两种情况下,结果不应该是相同的吗?
相关问答:Swift中的可选值是什么?
使用std::shared_ptr表达共享所有权和可选性(可能为null).
我发现自己处于只想在代码中表达共享所有权的情况,而且没有选择性.当使用a shared_ptr作为函数参数时,我必须让函数检查它是否为null以保持一致/安全.
在许多情况下,传递引用而不是当然是一种选择,但我有时也希望转移所有权,因为它可以使用shared_ptr.
是否有一个类可以替换shared_ptr而没有可能为null,一些常规来处理这个问题,或者我的问题没有多大意义?