同僚がこれを見せてくれましたが、コンパイルされていることに驚きました。
def toUpper(s: Option[String]): String = {
s.getOrElse(return "default").toUpperCase
// ^^^^^^ // a return here in the closure??
}
そしてこれも機能します:
println(toUpper(Some("text"))) // TEXT
println(toUpper(None)) // default
return
内部から閉鎖は許可されていないと思いました。これはいつから機能していますか?このような非ローカル リターンに関する注意事項はありますか?