迭代一个元组

Ech*_*cho 7 iterator scala

我需要实现一个带有元组的泛型方法并返回一个Map示例:

val tuple=((1,2),(("A","B"),("C",3)),4)
Run Code Online (Sandbox Code Playgroud)

我一直试图将这个元组分解为一个列表:

val list=tuple.productIterator.toList
Scala>list: List[Any] = List((1,2), ((A,B),(C,3)), 4)
Run Code Online (Sandbox Code Playgroud)

但这种方式会返回List [Any].

我现在正在尝试找出如何迭代以下元组,例如:

((1,2),(("A","B"),("C",3)),4)
Run Code Online (Sandbox Code Playgroud)

为了遍历每个元素1,2,"A",B",...等.我怎么能在元组上进行这种迭代

Pet*_*itz 15

关于什么?:

def flatProduct(t: Product): Iterator[Any] = t.productIterator.flatMap {
  case p: Product => flatProduct(p)
  case x => Iterator(x)
}
val tuple = ((1,2),(("A","B"),("C",3)),4)
flatProduct(tuple).mkString(",") // 1,2,A,B,C,3,4
Run Code Online (Sandbox Code Playgroud)

好吧,Any问题仍然存在.至少这是由于返回类型productIterator.

  • 我不知道,但由于某种原因,我几个月后故意再次看你的帖子,并注意到你的方式确实正确地解决了我的问题.我想当你发布你的答案我无法得到产品所指的东西.现在它是有道理的.彼得彼得:) (2认同)