将String转换为Double并检查是否为nil

时间:2017-06-16 04:48:39

标签: arrays swift double

我在数组中有多个Strings:“1.1”,“AA”,“1”,nil等...如果可能,我需要将字符串转换为Double。我试过了,但代码崩溃了。

let doubleValue = Double(array[3]!) // 3 = nil

如果我得到nil就没关系,至少我知道这个值不能是Double。

有什么建议吗?

2 个答案:

答案 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)