在Swift中单行测试nil

Naf*_*der 0 swift

我有一个可选的整数,我想将它分配给一个新的变量,如果它不是nil,但如果它是,则指定0.我也想在一条线上做.有一个很好的理由不能做到以下几点?

let output = input != nil ? input! : 0

我觉得像一个更"正确"的方式会是这样的

let output = {
    if let _ = input {
        return input!
    } else {
        return 0
    }
}()
Run Code Online (Sandbox Code Playgroud)

但它更加冗长.

mat*_*att 5

实际上Swifty的方式是:

let output = input ?? 0
Run Code Online (Sandbox Code Playgroud)

??准确适用于这种情况的操作员意味着:"如果可以,请安全地打开此选购件;如果不能,请使用此替代值".