16

我有一个元组列表,我想过滤掉元组中第二个值不等于 7 的所有元素。

我愿意:

valuesAsList.filter(x=>x._2 != 7)

我可以使用通配符表示法来缩短它吗?

谢谢。

4

3 回答 3

34

你可以

valuesAsList.filter(_._2 != 7)

但我怀疑它应该优于你的例子或这个(认为可读性):

valuesAsList.filter {case (_, v) => v != 7}
于 2013-05-08T21:04:00.833 回答
3

相当直截了当,没有真正的优势恕我直言:

valuesAsList.filter(_._2 != 7)
于 2013-05-08T21:05:11.850 回答
0

对于元组数组,我们可以使用 for 和 yield 来返回一个数组

scala> val str = Array((2,Hello), (3,MyNameIs), (8,Lolo))

res34: Array[(Int, String)] = Array((2,Hello), (3,MyNameIs), (8,Lolo))

scala> for(i <- str if(i._2.size > 4)) 产量 (i._1,i._2.toLowerCase)

res35: Array[(Int, String)] = Array((2,hello), (3,mynameis))

于 2020-01-27T07:16:15.370 回答