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

标签 arrays swift type-conversion tuples

在 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/

相关文章:

C++ 巨大的整数数组存储为长整数

javascript - 使用 Javascript 进行快速排序的大 O 问题

ios - 在 UITableView 上调用scrollToRow 不适用于 AccessoryView

c# - 如何在不使用系统帮助函数的情况下在 C# 中将 int 转换为 byte[]?

c - 为三元运算符内的动态转换生成的代码不正确?

C - 数组不能使用变量作为索引

python - Numpy 自定义移动窗口计数范围内的单元格

ios - 一旦列表被删除,UITableView 将不会刷新。 self.tableView.reloadData() 也不起作用

ios - 在 Facebook 上分享 IOS 11 Swift

JavaScript 将 int 转换为 String