spa*_*rkr 4 scala list pattern-matching scala-collections
假设我有一个我希望模式匹配的案例类列表,如果有类型,则返回true或false.例如.,
case class TypeA(one: String, two: Int, three: String)
val list = List(TypeA, TypeA, TypeA)
Run Code Online (Sandbox Code Playgroud)
我想现在匹配类型列表,看看TypeA是否包含其参数之一的某个值(比如第一个参数).我所拥有的是以下内容:
def isAvailableInTypeA(list: List[TypeA], checkStr: String) = {
!(list.dropWhile(_.one != checkStr).isEmpty))
}
Run Code Online (Sandbox Code Playgroud)
对于我想要实现的目标,是否有更好的可读性建议?
如果要检查谓词是否适用于列表的元素,请使用.exists
.
scala> val l = List(TypeA("a",2,"b"), TypeA("b",2,"b"))
l: List[TypeA] = List(TypeA(a,2,b), TypeA(b,2,b))
scala> l.exists(_.one == "a")
res0: Boolean = true
scala> l.exists(_.one == "c")
res1: Boolean = false
Run Code Online (Sandbox Code Playgroud)