假设我有一个想要模式匹配的案例类列表,如果有类型则返回 true 或 false。例如。,

case class TypeA(one: String, two: Int, three: String)

val list = List(TypeA, TypeA, TypeA)

我现在想与类型列表进行匹配,看看 TypeA 是否包含它的一个参数(比如第一个参数)的某个值。我所拥有的是以下内容:
def isAvailableInTypeA(list: List[TypeA], checkStr: String) = {
  !(list.dropWhile(_.one != checkStr).isEmpty))
}

对于我想要实现的目标,是否有更好的可读性建议?

最佳答案

如果要检查谓词是否适用于列表元素,请使用 .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

关于list - 模式匹配 Scala 中的案例类列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25681003/

10-10 22:57