什么是从元组数组类型转换为命名元组数组类型的替代方法?

时间:2016-01-10 01:20:17

标签: arrays swift type-conversion tuples

在Swift中,[(String, Double)][(name: String, result: Double)]不兼容!要在这些类型之间进行转换,我只能更改类型名称,即强力

我的意思是,这两种类型逻辑兼容,对吧?只要丢掉这个名字即可获得[(String, Double)]。添加名称即可获得[(name: String. result: Double)]

现在,我只能遍历数组并将每个项目添加到另一个类型的变量中。为了做到这一点,需要这么多行代码!

在这两种类型之间进行转换的更优雅方式是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用地图:

let tupleArray: [(String, Double)] = [("element A", 2.5),("element B", 5.0)]
let tuppleNamedArray: [(name: String, result: Double)] = tupleArray.map{($0,$1)}
tuppleNamedArray.first?.result   // 2.5

或者也如vacawama所建议的那样:

let tuppleNamedArray = tupleArray.map{(name: $0, result: $1)}