Double?为nil时返回空字符串,有没有比三元运算符更短的实现方式?
最优替代方案
使用Optional.map配合空合运算符即可,比你当前的写法更短,同时完全规避了强制解包的崩溃风险:
variable.map(String.init) ?? ""
逻辑说明
- 当
Double?类型的variable为非空时,map会取出内部的Double值,调用String构造器得到对应的字符串 - 当
variable为nil时,map直接返回nil,此时空合运算符??会返回兜底的空字符串""
其他可选方案
如果你偏好显式的判断逻辑,也可以用可选绑定替代原有的三目+强制解包写法,同样无安全隐患,只是长度稍长:
if let variable = variable { String(variable) } else { "" }
内容的提问来源于stack exchange,提问作者user3001150
相关产品推荐
相关产品推荐

