Swift Optional 类型返回值指南

438 阅读1分钟

当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!") `