Swift Optionals

时间:2014-06-04 19:48:01

标签: swift optional

有人可以向我解释下面的代码(出现在Apple的Swift书的第11页):

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

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

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

2 个答案:

答案 0 :(得分:5)

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 :(得分:1)

你在谈论这条线吗?

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

在英语中,这表示:如果optionalName有值,请将该值设置为临时变量name,然后使用它来构造新字符串。如果optionalName nil完全没有做任何事情。

相关问题