在Scala中显式写入'return'和隐式写入有什么区别?

Jud*_*ing 5 scala

这是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
Run Code Online (Sandbox Code Playgroud)

我想知道为什么添加return关键字有区别?非常感谢!

Nam*_*ami 2

return从概念上讲,其中的语句将覆盖块中的finally原始语句。但如果不使用 return,Scala 会选择block 的最后一个表达式作为计算结果,finally 只是作为副作用执行,对函数的结果没有任何影响。您也可以看看这个线程。returntrytry