我想知道他们两个人在做同样的事情时,在第二个陈述中使用第一个可能的用例。
val xs = List[Int](1,2,3,4,5,6)
获取数字列表:
for (x <- xs if x%2 == 0)
yield x*10
同样如下:
xs.filter(_%2 == 0).map(_*10)
答案 0 :(得分:4)
我认为没有性能差异。使用for
循环的代码将被转换为filter
和map
的代码(详细信息可能因Scala版本而异)。根据您的喜好,您要使用哪个版本。有关详细信息,请参阅此answer。