在地图操作中元组拆包
我经常发现自己在处理元组的列表,序列和迭代器,并且想要做如下的事情,
val arrayOfTuples = List((1, "Two"), (3, "Four")) arrayOfTuples.map { (e1: Int, e2: String) => e1.toString + e2 } 然而,编译器似乎从来没有认同这个语法。 相反,我最终写作,
 arrayOfTuples.map { t => val e1 = t._1 val e2 = t._2 e1.toString + e2 } 
这是愚蠢的。 我怎样才能解决这个问题?
 解决办法是用case : 
 arrayOfTuples map {case (e1: Int, e2: String) => e1.toString + e2} 
我喜欢tupled函数; 这既方便又重要,types安全:
 import Function.tupled arrayOfTuples map tupled { (e1, e2) => e1.toString + e2 } 
你为什么不使用
 arrayOfTuples.map {t => t._1.toString + t._2 } 
如果您需要多次或不同顺序的参数,或者在嵌套结构中_不起作用,
 arrayOfTuples map {case (i, s) => i.toString + s} 
似乎是一个简短的,但可读的forms。
另一个select是
 arrayOfTuples.map { t => val (e1,e2) = t e1.toString + e2 }