gpt4 book ai didi

scala - 何时使用isInstanceOf和何时使用区分大小写语句(在Scala中)?

转载 作者:行者123 更新时间:2023-12-03 14:31:28 25 4
gpt4 key购买 nike

sealed class A
class B1 extends A
class B2 extends A


假设我们有一个 A类的对象列表:
值l:List [A] =列表(新B1,新B2,新B1,新B1)

我们要过滤掉B1类型的元素。
然后我们需要一个谓词,并可以使用以下两种替代方法:

l.filter(_.isInstanceOf[B1])


要么

l.filter(_ match {case b: B1 => true; case _ => false})


就个人而言,我更喜欢第一种方法,但我经常阅读,应该更频繁地使用 match-case语句(出于我不知道的原因)。

因此,问题是:使用 isInstanceOf代替 match-case语句是否有缺点?什么时候应使用哪种方法(此处应使用哪种方法,为什么使用)?

最佳答案

您可以这样过滤:

l.collect{ case x: B1 => x }


IMO更容易理解。

关于scala - 何时使用isInstanceOf和何时使用区分大小写语句(在Scala中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11229265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com