加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

模式匹配Scala中的案例类列表

发布时间:2020-12-16 18:22:41 所属栏目:安全 来源:网络整理
导读:假设我有一个我希望模式匹配的案例类列表,如果有类型,则返回true或false.例如., case class TypeA(one: String,two: Int,three: String)val list = List(TypeA,TypeA,TypeA) 我想现在匹配类型列表,看看TypeA是否包含其参数之一的某个值(比如第一个参数).我所
假设我有一个我希望模式匹配的案例类列表,如果有类型,则返回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","b"))
l: List[TypeA] = List(TypeA(a,b),TypeA(b,b))

scala> l.exists(_.one == "a")
res0: Boolean = true

scala> l.exists(_.one == "c")
res1: Boolean = false

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读