因为它也解开了可选值,所以这段代码:
if let name = optionalName { greeting = "Hello, (name)"}等效于:
if optionalName != nil { let name:String = optionalName! greeting = "Hello, (name)"}这种语言糖在Swift中被称为Optional
Binding。
可选类型
在Swift
T和
T?不是相同的类型中,但是
T?可以使用
!postfix运算符轻松实现可选类型的基础值,例如:
let name:String = optionalName!
现在可以在
String期望a的地方使用它,例如:
func greet(name:String) -> String { return "Hello, (name)"}greet(name)尽管这样做很安全,但是Swift确实允许您隐式转换为可选类型:
let name = "World"let optionalName: String? = namefunc greet(optionalName:String?) -> String? { if optionalName != nil { return "Hello, (optionalName)" } return nil}//Can call with either String or String?greet(optionalName)greet(name)


