当Optional类型数据为空时, Swift推荐使用 ‘??’ 返回默认值
struct Customer {
let id: String
let email: String
let firstName: String?
let lastName: String?
let balance: Int
var displayName: String? {
switch (firstName, lastName) {
case let (first?, last?): return first + " " + last
case let (first?, nil): return first
case let (nil, last?): return last
default: return nil
}
}
}
func createConfirmationMessage(name: String, product: String) -> String {
return """
Dear \(name),
Thank you for ordering the \(product)"
Your order will be delivered tomorrow.
Kind regards,
The Mayonnaise depot.
"""
}
1. 初始化一个customer 对象
let customer = Customer(id: "30", email: "famthompson@gmail.com", firstName: nil, lastName: "Thompson", balance: 300)
2. 由于dispalyName是Optional类型,需要解包,解包之后有可能为nil
3. 解包dispalyName为空时返回和dispayName同类型的数据作为默认返回值
如:声明一个title是String类型,customer.dispalyName为空则返回 "customer"作为默认返回值,否则返回customer.dispalyName
let title: String = customer.dispalyName ?? "customer" createConfirmationMessage(name: name, product: "Economy size party tub!")
`