這爲什麼有效?爲什麼這個值沒有被返回,因爲它應該在這裏?
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