假设我有以下场景:
var str: String
var num: Int?
if let num = num {
str = "\(num) foo"
}
else {
str == "? foo"
}
流控语句能不能简化成一行? IE。类似的东西:
var str: String
var num: Int?
str = "\(String(num) ?? "?") foo"
最佳答案
您可以通过可选链接调用description
属性,然后使用nil 合并运算符 ??
如果 num
为 nil
(导致 可选链 返回无
):
str = "\(num?.description ?? "?") foo"
例子:
for num in [nil, 5] {
let str = "\(num?.description ?? "?") foo"
print(str)
}
? foo 5 foo
关于Swift 使用 nil 合并运算符简化可选 Int 到 String 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261773/