这是Scala cli中的代码:
scala> def ff(): Int = try {return 1} finally {return 2}
scala> println(ff())
2
scala> def gg(): Int = try {1} finally {2}
scala> println(gg())
1
我想知道为什么添加return
关键字有区别?非常感谢!
答案 0 :(得分:2)
return
中的finally
语句在概念上将覆盖return
块中的原始try
。但是如果你不使用return,Scala会选择try
块的最后一个表达式作为计算结果,最后只是作为副作用执行,对函数的结果没有任何影响。您也可以查看this thread。