scala コンパイラで次のエラーに遭遇しました。ジラで問題を見つけることができませんでした。したがって、これが既知の問題であるかどうかを最初に尋ねることにしました。
私は次の2つの方法から始めました。
def getName: String = getString match {
case None => return ""
case Some(str) => return str
}
def getString: Option[String] = Some("abc")
次に、最初の方法を次のように変更しました
lazy val getName: String = getString match {
case None => return ""
case Some(str) => return str
}
残念ながら、return ステートメントを削除するのを忘れていました。この場合、scala コンパイラは「メソッド定義の外に戻る」というメッセージで停止するはずですが、実際に行ったことは次のとおりです。
[ant:scalac] error: uncaught exception during compilation: java.lang.NullPointerException
[ant:scalac] java.lang.NullPointerException
[ant:scalac] at scala.reflect.internal.Trees$class.Select(Trees.scala:1066)
[ant:scalac] at scala.reflect.internal.SymbolTable.Select(SymbolTable.scala:13)
バグのようです。そうじゃない?