在 Swift 中,[(String, Double)]
和 [(name: String, result: Double)]
不兼容!要在这些类型之间转换,我只能更改类型名称,这太蛮力了。
我的意思是,这两种类型在逻辑上是兼容的,对吧?只需丢弃名称即可得到 [(String, Double)]
。添加名称,您将得到 [(name: String.result: Double)]
。
目前,我只能遍历数组并将每一项添加到另一种类型的变量中。这么多行代码就是为了做到这一点!
在这两种类型之间进行转换的更优雅的方法是什么?
最佳答案
你可以使用 map :
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)}
关于arrays - 从元组数组类型转换为命名元组数组类型的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700961/