我有一个元组列表,我想过滤掉元组中第二个值不等于 7 的所有元素。
我愿意:
valuesAsList.filter(x=>x._2 != 7)
我可以使用通配符表示法来缩短它吗?
谢谢。
你可以
valuesAsList.filter(_._2 != 7)
但我怀疑它应该优于你的例子或这个(认为可读性):
valuesAsList.filter {case (_, v) => v != 7}
相当直截了当,没有真正的优势恕我直言:
valuesAsList.filter(_._2 != 7)
对于元组数组,我们可以使用 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))