您好,登錄后才能下訂單哦!
本篇內容主要講解“Scala底層類型有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Scala底層類型有哪些”吧!
類型層級的底部有兩個類scala.Null和Scala.Nothing。它們是用統一的方式處理某些Scala的面向對象類型系統的“邊界情況”的特殊類型。
類Null是null類型的引用;它是每個引用類(就是說,每個繼承自AnyRef的類)的子類。Null不兼容值類型。你不可,比方說,把null值賦給整數變量:
scala>val i: Int = null < console>:4:error:typemismatch; found:Null(null) required:Int
類型Nothing在Scala的類層級的***端;它是任何其它類型的子類型。然而,根本沒有這個類型的任何值。要一個沒有值的類型有什么意思呢?Nothing的一個用處是它標明了不正常的終止。例如Scala的標準庫中的Predef對象有一個error方法,如下定義:
def error(message:String): Nothing = throw new RuntimeException(message)
error的返回類型是Nothing,告訴用戶方法不是正常返回的(代之以拋出了異常)。因為Nothing是任何其它類型的子類,你可以非常靈活的使用像error這樣的方法。例如:
def divide(x:Int, y:Int): Int = if(y != 0) x / y else error("can't divide by zero")
“那么”狀態分支,x / y,類型為Int,而“否則”(else)分支,調用了error,類型為Nothing。因為Nothing是Int的子類型,整個狀態語句的類型是Int,正如需要的那樣。
到此,相信大家對“Scala底層類型有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。