Scala匹配错误
发布时间:2020-12-16 09:22:27 所属栏目:安全 来源:网络整理
导读:我试图用一个匹配替换我的isInstanceOf检查,但它不起作用. 在我的方法中,我检查一个树节点 – 如果它是一个叶 – 我想立即将其返回到Vector中,否则 – 我继续该方法. 所以原来我有 //code here if (common.isInstanceOf[LeafNode]) { return Vector(common.a
我试图用一个匹配替换我的isInstanceOf检查,但它不起作用.
在我的方法中,我检查一个树节点 – 如果它是一个叶 – 我想立即将其返回到Vector中,否则 – 我继续该方法. 所以原来我有 //code here if (common.isInstanceOf[LeafNode]) { return Vector(common.asInstanceOf[LeafNode].data) } //code here 然后我试图用以下代替: //code here common match { case leaf: LeafNode => return Vector(leaf.data) } //code here 但我得到scala.MatchError. 解决方法
在您的公用程序不是LeafNode的情况下,您将收到MatchError.您的if和match表达式不相等.我认为最直接的方法是使它们相当于:
common match { case leaf: LeafNode => return Vector(leaf.data) case _ => } 但是我建议看整个代码块,并且开发出更多的功能性的方法来完成这项工作.也就是说,没有中间的回报.请记住,匹配是一个表达式,所以这样的事情可能是可能的: def foo = { //code here common match { case leaf: LeafNode => Vector(leaf.data) case notLeaf: Branch => //code here } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |