我在数组中有多个Strings
:“1.1”,“AA”,“1”,nil等...如果可能,我需要将字符串转换为Double。我试过了,但代码崩溃了。
let doubleValue = Double(array[3]!) // 3 = nil
如果我得到nil就没关系,至少我知道这个值不能是Double。
有什么建议吗?
答案 0 :(得分:2)
崩溃是因为你试图打开一个零值。尝试给出这样的默认值。
let doubleValue = Double(test[3] ?? "")
print(doubleValue) //nil
let dobuleArray = array.map({ Double($0 ?? "") })
答案 1 :(得分:0)
执行此操作的最佳方法是在map
上使用Optional
:
let doubleValue = array[3].map(Double.init)
如果要将所有数组映射到字符串,请使用map
:
let doubles = array.map(Double.init)
如果您要过滤掉所有非双重字符串而不是将其保留为nil
,请使用flatMap
:
let doubles = array.flatMap(Double.init)