我有一个元组列表,我想过滤掉元组中第二个值不等于7的所有元素。
我做:
valuesAsList.filter(x=>x._2 != 7)
我可以使用通配符表示法使其更短吗?
感谢。
答案 0 :(得分:28)
你可以
valuesAsList.filter(_._2 != 7)
但是我怀疑它应该优于你的例子或者这个(想想可读性):
valuesAsList.filter {case (_, v) => v != 7}
答案 1 :(得分:3)
相当直接,没有真正的优势恕我直言:
valuesAsList.filter(_._2 != 7)
答案 2 :(得分:0)
对于元组数组,我们可以将其与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))