最后,我必须将一堆愚蠢的逗号分隔字符串变成对象。我首先将字符串拆分为数组。然后我需要同时迭代所有这些,并从四个值中构建一个对象。
val s1 = Array(1,2,3)
val s2 = Array("a","b","c")
val s3 = Array(10,20,30)
val s4 = Array("u","v","w")
目标对象如下所示:
case class Data(a: Int, b: String, c: Int, d: String)
第一个 Data 对象必须打印
Data(1,a,10,u)
等等。我找到了三个项目的解决方案:
(s1, s2, s3).zipped foreach { (v1, v2, v3) =>
println(v1, v2, v3)
}
哪个打印:
(1,a,10)
(2,b,20)
(3,c,30)
使用四个或更多阵列,这将无法做到。Zipped 没有为 4 元组定义:
error: value zipped is not a member of (Array[Int], Array[String], Array[Int], Array[String])
我的 Scala 有点生锈,所以也许我错过了明显的东西(比如带有索引的迭代或其他东西)。