【发布时间】:2019-08-04 16:46:14
【问题描述】:
在为正确输出数据而开发一个小调试功能时,我遇到了元组数组的问题。显然我不能声明具有灵活包含的数据类型和大小的元组数组。
我想支持各种类型的元组数组,例如
[(String, Int, Int, String)] 和 [(Int, Int, Bool)],不止一个。
这是我目前的尝试,但我无法声明元组数组
(另外第二个for循环的计数器似乎也不正确?)
func debugData(names: [String], data: [(*magic tupel*)] ) {
var debugLine = ""
for line in 0..<data.count {
for i in 0..<(data[line].count) {
debugLine += "\(names[i])=\(data[line].i) "
}
print(debugLine)
debugLine = ""
}
}
我正在尝试将两个这样的数组组合在一起:
["Name", "Age", "SexM"] 和 [("Alex", 5, true), ("Lisa", 7, false), ("Max", 9, true)]。所需的输出(对于第一个元素)类似于"Name=Alex, Age=5, SexM=true",它是两个数组的组合。
当然,至少在上面的示例中,我可以简单地在函数的声明中使用Array<(String, Int, Bool)>,但我希望这个函数适用于各种数据——具有各种数组大小和灵活的数据类型......
我想它甚至没有那么复杂,我只是对 Swift 很陌生。
【问题讨论】:
-
你为什么不用字典呢?或者在这种特殊情况下,
Person结构。 -
我已经有相当多的数据打包在元组数组中,我现在正试图输出这些数据。我仍然会考虑这些用于未来的代码:)
-
我强烈建议您将它们重构为结构或对象(类的实例)。元组适用于非常短暂的数据,并且在许多方面都非常有限
-
您是否也建议不要使用 vadian 建议的代码,使用 CustomStringConvertible-Arrays?或者他们应该没问题? :)
-
它赢得了战斗而不是战争。
标签: arrays swift multidimensional-array