为什么我不能用Map迭代(Int,Int,Int)?

时间:2012-05-07 15:14:40

标签: scala

  

可能重复:
  Use 'map' and stuff on Scala Tuples?

为什么我不能迭代这个构造(我不知道如何调用它,因为Scala只是称它为(Int, Int, Int))?

val list = (1,2,3)
list.map{println _}

上面的代码会产生以下错误:

  

< console>:9:错误:值映射不是(Int,Int,Int)的成员
  (1,2,3).map {println _}

3 个答案:

答案 0 :(得分:5)

您可以使用.productIterator.productElements来处理此类事情:

t.productElements.toList.map(println)

我用toList来严格操作,导致productIterator返回懒惰的Iterator。

提示:建议对没有结果的函数使用.foreach(产生副作用的函数,就像println那样)

t.productElements.toList.foreach(println)

答案 1 :(得分:4)

我明白了。

它被称为“元组”,它已在这里得到解答。

Use 'map' and stuff on Scala Tuples?

答案 2 :(得分:3)

根据您的价值list的名称,您似乎打算使用List而不是Tuple。试试这个来创建定义List的<{1}}:

map