相关疑难解决方法(0)

什么是Swift中的"未包装的价值"?

按照本教程,我正在学习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的回答,原始代码的输出与最终解决方案(在操场上测试)之间存在细微差别:

原始代码

原始代码

Cezary的解决方案

Cezary的解决方案

在第二种情况下,超类的属性显示在输出中,而在第一种情况下有一个空对象.

在这两种情况下,结果不应该是相同的吗?

相关问答:Swift中的可选值是什么?

ios swift ios8

155
推荐指数
3
解决办法
7万
查看次数

斯威夫特:什么时候应该使用"var"而不是"let"?

正如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

swift

1
推荐指数
1
解决办法
853
查看次数

标签 统计

swift ×2

ios ×1

ios8 ×1