2016-06-10 89 views

回答

5

您不能實際返回類型爲Nothing的值,因爲沒有類型爲Nothing的值。所以定義返回類型爲Nothing的函數的唯一方法是永遠不會返回。

一個例子是一個函數,它只是遞歸地無限調用自己。另一個總是拋出異常或者退出應用程序(sys.exit的返回類型爲Nothing)。

3

其實,沒有什麼是使用功能,這永遠不會返回或通過拋出一些例外 如abnormaly終止:

scala> def funcReturnNothing : Nothing = throw new RuntimeException("runtime exception") 
funcReturnNothing: Nothing 

更多的解釋。 Scala中的函數在其返回類型中是協變化的假設函數的返回類型爲T,所以此函數只能返回T的子類型或TNothing類型的值是所有其他類型的子類型(最低類型鏈)所以,實際上你不能返回任何有用的東西,但拋出異常的類型爲Nothing,你可以返回。