这为什么有效?为什么这个值没有被返回,因为它应该在这里?
object Foo extends App {
def bar(s: String): String = {
if (s.size == 0) "empty string"
else if (s.size == 1) s + s
else s.head + bar(s.tail)
}
println(bar(""))
println(bar("s"))
println(bar("soom"))
}
[info] Running example.Foo
empty string
ss
soomm
虽然这不是。
object Foo extends App {
def bar(s: String): String = {
if (s.size == 0) "empty string"
if (s.size == 1) s + s
s.head + bar(s.tail)
}
println(bar(""))
println(bar("s"))
println(bar("soom"))
}
java.util.NoSuchElementException: next on empty iterator
return
不应该短路的代码,而不是前进吗?我觉得有一个简单的解释,为什么第二个代码片段不起作用,但我似乎无法找出原因。
它应该...但没有'return'在你的代码。 – Dima