2

为什么method1 在 2 时返回 1 method2

def method1 = try { 1 } finally { 2 }                  

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

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

4

1 回答 1

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。”

这就回答了第二个问题。它无助于结果类型推断。

于 2013-09-05T05:36:23.933 回答