按照本教程,我正在学习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中的可选值是什么?
正如Apple文档所说:
使用
let做一个常数,var使一个变量.在编译时不需要知道常量的值,但是必须为其分配一次值.这意味着您可以使用常量来命名您确定一次但在许多地方使用的值.
让我们考虑一下课程:
class A {
    var a = [String]()
}
Run Code Online (Sandbox Code Playgroud)
由于数组a是可变的,因此它是通过定义的var.但是如果我们考虑B类,A的实例是属性呢?
class B {
    let b = A()
}
Run Code Online (Sandbox Code Playgroud)
即使b是可变的,let关键字也可以,因为引用不会被更改.另一方面,var也可以,因为内容b可以改变.我应该在这个例子中选择什么 - let或者var?