我有一个可选的整数,我想将它分配给一个新的变量,如果它不是nil,但如果它是,则指定0.我也想在一条线上做.有一个很好的理由不能做到以下几点?
let output = input != nil ? input! : 0
我觉得像一个更"正确"的方式会是这样的
let output = {
if let _ = input {
return input!
} else {
return 0
}
}()
Run Code Online (Sandbox Code Playgroud)
但它更加冗长.
实际上Swifty的方式是:
let output = input ?? 0
Run Code Online (Sandbox Code Playgroud)
??准确适用于这种情况的操作员意味着:"如果可以,请安全地打开此选购件;如果不能,请使用此替代值".