我有以下代码
val result = hyp().filter(_._3)
其中hyp()返回List [(Int,Int,Set [Int])]并且filter仅用于返回集合包含单个元素的那些列表。 _._ 3访问Set(Int)部分。我怎样才能使用.last而不是_._ 3?感谢
答案 0 :(得分:3)
你可以使用shapeless使这个漂亮(请注意我使用的是1.2.4版本):
import shapeless.Tuples._
val result = hyp().filter(_.hlisted.last.size == 1)
答案 1 :(得分:3)
使用模式匹配,它可能看起来像
val result = hyp().filter {
case (_, _, x) => x.size == 1
}
答案 2 :(得分:0)
替代@kompot答案
val result = hyp().collect {
case t @ (_, _, xs) if xs.size == 1 => t
}
这里我将整个元组绑定到t
变量,如果最后一个元组有单个元素,我将它传递给结果集合