Swift 可选类型

4
有人能否解释一下以下代码(出现在苹果的Swift书第11页):
var optionalString: String? = "Hello"
optionalString = nil

var optionalName: String? = "Einav Sitton"
var greeting = "HELLO!"

if let name = optionalName {
    greeting = "Hello, \(name)"
}

请看这里:https://dev59.com/XoDba4cB1Zd3GeqPCk9D#24030107 - Connor
2个回答

8

Swift要求可以为可选项的类型必须明确声明,因此第一个片段是创建可为空字符串的示例:

var optionalString: String? = "Hello"
optionalString = nil

为了使用可空字符串,需要使用 ! 后缀进行实现,因此要将 String? 转换为 String,可以执行以下操作:
var name : String = optionalName!

但是 Swift 还提供了一种缩写方式,在条件块内检查并实现可空性,例如:
if let name = optionalName {
    greeting = "Hello, \(name)"
}

这与以下内容相同:

if optionalName != nil {
    let name = optionalName!
    greeting = "Hello, \(name)"
}

1
你是在谈论这一行吗?
if let name = optionalName {
    greeting = "Hello, \(name)"
}

如果optionalName有值,将该值设置为临时变量name,然后使用它构建一个新的字符串。如果optionalNamenil,则不执行任何操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接