写作&返回'之间有什么区别?在Scala中明确地和那个隐含的?

时间:2015-02-17 10:20:59

标签: 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

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

1 个答案:

答案 0 :(得分:2)

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