从try - finally返回一个值

时间:2013-09-05 04:56:09

标签: scala

为什么method1method2 2:

时返回1
def method1 = try { 1 } finally { 2 }                  

def method2: Int = try { return 1 } finally { return 2 }

为什么method2需要指定其返回类型?

1 个答案:

答案 0 :(得分:3)

这个问题可能会在早上关闭,但只是为了好玩:

scala> def foo = return 1
<console>:7: error: method foo has return statement; needs result type
       def foo = return 1
                 ^

SLS 6.20:“返回表达式的类型是scala.Nothing。”

这回答了第二个问题。它不协助结果类型推断。