【问题标题】:Nice filter form in ScalaScala中的漂亮过滤器形式
【发布时间】:2015-07-27 17:24:39
【问题描述】:

在 Scala 中,我创建了一个列表,然后根据类条件对其进行过滤:

val list: List[MyObj] = // fill in with objects that extend MyObj, one of them is class A
val list2 = list filter ({ case A() => false case _ => true })

上面的过滤器可以写成更简洁的形式吗?

【问题讨论】:

标签: scala filter


【解决方案1】:

您可以尝试使用isInstanceOf 方法:

list filter (_.isInstanceOf[A])

【讨论】:

  • 我不知道反对该方法的建议。你指的是什么课程?
  • 恕我直言,使用类型匹配的主要优点是过滤器的返回类型。如果列表是 List[B]list filter (_.isInstanceOf[A]) 返回 List[B]。如果你这样做list.collect { case a: A => a },你会得到一个List[A]。在某些情况下可能会很方便。
猜你喜欢
  • 2020-08-14
  • 2013-11-22
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
相关资源
最近更新 更多