一位同事刚刚向我展示了这个,我很惊讶它完全编译:
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
从内部封闭是不允许的。这从什么时候开始起作用了?这种非本地回报是否有警告?