在Swift中,[(String, Double)]
和[(name: String, result: Double)]
不兼容!要在这些类型之间进行转换,我只能更改类型名称,即强力。
我的意思是,这两种类型逻辑兼容,对吧?只要丢掉这个名字即可获得[(String, Double)]
。添加名称即可获得[(name: String. result: Double)]
。
现在,我只能遍历数组并将每个项目添加到另一个类型的变量中。为了做到这一点,需要这么多行代码!
在这两种类型之间进行转换的更优雅方式是什么?
答案 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)}