【发布时间】:2016-06-10 17:08:00
【问题描述】:
为什么会这样?
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
returns 不应该让代码短路而不继续前进吗?我觉得对于第二个代码 sn -p 不起作用的原因有一个简单的解释,但我似乎无法找出原因。
【问题讨论】:
-
应该...但是您的代码中没有
return。