gpt4 book ai didi

scala - 为什么 Scala 2.10 在匹配单例类型时给出 'match may not be exhaustive' 警告?

转载 作者:行者123 更新时间:2023-12-04 05:34:22 24 4
gpt4 key购买 nike

在 Scala 2.10.0-M4 中

object X
def f(e: Either[Int, X.type]) = e match {
case Left(i) => i
case Right(X) => 0
}

给出:

warning: match may not be exhaustive.
It would fail on the following input: Right(<not X>)

这是正确的吗?当然,匹配实际上是详尽无遗的。

(同时,在 Scala 2.9.X 中我们得到

error: pattern type is incompatible with expected type;
found : object X
required: X.type
case Right(X) => 0

这大概是一个错误。)

最佳答案

遗憾的是,X.type 中有两个值。一个是显而易见的,X,另一个当然是 null。因此你的模式错过了一个案例:(

关于scala - 为什么 Scala 2.10 在匹配单例类型时给出 'match may not be exhaustive' 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166098/

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