有人可以向我解释下面的代码(出现在Apple的Swift书的第11页):
var optionalString: String? = "Hello"
optionalString = nil
var optionalName: String? = "Einav Sitton"
var greeting = "HELLO!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
答案 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
完全没有做任何事情。