【发布时间】:2015-08-26 05:42:29
【问题描述】:
我认为在 Scala 中我不需要在 return 语句中显式放置“return”。所以我有以下代码:
def checkSimple(str1: String, str2: String): Boolean = {
if (str1 > str2) {
println("str1 > str2")
true
}
println("str1 <= str2")
false
}
如果我用 checkSimple("200", "150") 运行上面的代码,我会得到以下错误结果:
str1 > str2
str1 <= str2
但如果我在“true”前面添加“return”,如下所示,一切正常:
def checkSimple(str1: String, str2: String): Boolean = {
if (str1 > str2) {
println("str1 > str2")
return true
}
println("str1 <= str2")
false
}
那么在return语句行中是否真的需要“return”?
谢谢!
【问题讨论】:
-
编译器应该如何知道您的意图是在 if 语句中返回
true? -
有时
-Xlint会警告此类错误。但是 FSR 它甚至没有警告def g(i: Int, j: Int) = { if (i < j) true ; false }。它警告def f = { true ; false }