为课程的第一个作业https://www.coursera.org/course/progfun 我想做以下
val l1 = List(1,2,3)
val l2 = List(4,5,6)
val lSum = l1.someOperation(l2)
RES: lSum=List(5,7,9)
我可以用循环实现someOperation,但这看起来不是很奇怪,我想知道是否有内置函数来实现这一点。
答案 0 :(得分:9)
除了zip
之外,标准库还提供了zipped
,这样就无需解构任何元组:
(l1, l2).zipped.map(_ + _)
答案 1 :(得分:6)
您可以将它们压缩并在地图中执行添加:
l1.zip(l2).map(x => x._1 + x._2)
答案 2 :(得分:1)
这可能比@ om-nom-nom的代码更加Scalaish。虽然随着语言的发展,Scala仍然很年轻,但实际上仍然存在关于实际上 和不是 Scalaish的争论:
l1 zip l2 map { case (a, b) => a + b }