为什么method1
在method2
2:
def method1 = try { 1 } finally { 2 }
def method2: Int = try { return 1 } finally { return 2 }
为什么method2
需要指定其返回类型?
答案 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。”
这回答了第二个问题。它不协助结果类型推断。