斯威夫特 - 在数组转换值双打或浮筒 [英] Swift - Convert values in array to doubles or floats
本文介绍了斯威夫特 - 在数组转换值双打或浮筒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有哪些是字符串值的数组(但所有的弦都像1.0,2.0值等)。我想这些字符串转换成双打或花车因此我可以添加它们放在一起。我该怎么做这迅速?
I have an array with values which are strings (but all the strings are values like 1.0, 2.0, etc). I'm trying to convert those strings into doubles or floats so I can add them all together. How do I do this in swift?
推荐答案
更新:
extension _ArrayType where Generator.Element == String {
var doubleArray: [Double] {
return flatMap{ Double($0) }
}
var floatArray: [Float] {
return flatMap{ Float($0) }
}
}
用法:
let strNumbersArray = ["1.5","2.3","3.7","4.5"] // ["1.5", "2.3", "3.7", "4.5"]
let doublesArray = strNumbersArray.doubleArray // [1.5, 2.3, 3.7, 4.5]
let floatsArray = strNumbersArray.floatArray // [1.5, 2.3, 3.7, 4.5]
let total = doublesArray.reduce(0, combine:+) // 12
let average = total / Double(doublesArray.count) // 3
如果您有AnyObjects数组?你需要从可选AnyObject字符串转换为双:
If your you have an Array of AnyObjects? where you need to convert from from Optional AnyObject Strings to Double:
extension _ArrayType where Generator.Element == AnyObject? {
var doubleArray:[Double] {
return flatMap{Double($0 as? String ?? "")}
}
var floatArray:[Float] {
return flatMap{Float($0 as? String ?? "")}
}
}
用法:
let strNumbersArray:[AnyObject?] = ["1.5","2.3","3.7","4.5", nil] // [{Some "1.5"}, {Some "2.3"}, {Some "3.7"}, {Some "4.5"}, nil]
let doublesArray = strNumbersArray.doubleArray // [1.5, 2.3, 3.7, 4.5]
let floatsArray = strNumbersArray.floatArray // [1.5, 2.3, 3.7, 4.5]
let total = doublesArray.reduce(0, combine:+) // 12
let average = total / Double(doublesArray.count) // 3
这篇关于斯威夫特 - 在数组转换值双打或浮筒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文