【发布时间】:2021-09-19 11:25:42
【问题描述】:
我在 Intellij 的 scala 程序中编写了一个方法,如下所示:
def myMethod(c: Option[C]) = {
val x = ...
val y = ...
c.filter(...)
.map(_ => {
(x,y) match {
case (a,b) => "val1"
case (c,d) => "val2"
case (_, _) => "val3"
}
})
}
Intellij 提示此方法的输出类型为 Option[String]。但是由于我使用了过滤方法,它可能返回None,所以这个提示是不是错了?
【问题讨论】:
-
你的问题对我来说听起来很矛盾。 IDE 说该方法返回一个选项。正如您正确指出的那样,您的
filter返回一个选项。但是您说 IDE 同意您的做法是错误的?我不关注。 -
但是如果过滤器返回无,地图甚至不会被应用。所以返回类型不应该是 None 和 Option[String] 的共同祖先。
标签: scala intellij-idea