{ val-6ren">
gpt4 book ai didi

Scala 警告匹配可能并不详尽

转载 作者:行者123 更新时间:2023-12-02 01:19:52 26 4
gpt4 key购买 nike

我对 Scala 有点陌生。以下是我的代码。

Option(Session.get().getAttribute("player")) match {
case None => {
val player = new Player(user.getEmail, user.getNickname).createOrGet
Session.get().setAttribute("player", player)
}
}

编译时出现以下警告

Warning:(35, 11) match may not be exhaustive.
It would fail on the following input: Some(_)
Option(Session.get().getAttribute("player")) match {
^

我该如何解决这个问题?有没有办法重写代码以避免警告?(我使用的是Scala版本2.10.2)

最佳答案

当模式匹配时,您应该考虑所有可能的情况或提供“后备”(case _ => ...)。 Option 可以是 SomeNone,但您仅匹配 None 情况。

如果 Session.get().getAttribute("player") 返回 Some(player) 你会得到一个 MatchError (异常) .

由于您的代码似乎没有返回任何内容,因此我将在根本不使用 match 的情况下重写此代码,并仅检查 isEmpty

if(Option(Session.get().getAttribute("player")).isEmpty) {
val player = new Player(user.getEmail, user.getNickname).createOrGet
Session.get().setAttribute("player", player)
}

尽管这与检查 Session.get().getAttribute("player") == null 没有太大区别

关于Scala 警告匹配可能并不详尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27709101/

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