Scala 數據類型 & 類型轉換 & 轉換精度


數據類型

Scala官網:https://docs.scala-lang.org/zh-cn/tour/unified-types.html

 

Any是所有類型的超類型,也稱為頂級類 型。它定義了一些通用的方法如equalshashCodetoStringAny有兩個直接子類:AnyValAnyRef

AnyVal代表值類型。有9個預定義的非空的值類型分別是:DoubleFloatLongIntShortByteCharUnitBooleanUnit是不帶任何意義的值類型,它僅有一個實例可以像這樣聲明:()。所有的函數必須有返回,所以說有時候Unit也是有用的返回類型。

AnyRef代表引用類型。所有非值類型都被定義為引用類型。在Scala中,每個用戶自定義的類型都是AnyRef的子類型。如果Scala被應用在Java的運行環境中,AnyRef相當於java.lang.Object

Nothing是所有類型的子類型,也稱為底部類型。沒有一個值是Nothing類型的。它的用途之一是給出非正常終止的信號,如拋出異常、程序退出或者一個無限循環(可以理解為它是一個不對值進行定義的表達式的類型,或者是一個不能正常返回的方法)。

Null是所有引用類型的子類型(即AnyRef的任意子類型)。它有一個單例值由關鍵字null所定義。Null主要是使得Scala滿足和其他JVM語言的互操作性,但是幾乎不應該在Scala代碼中使用。我們將在后面的章節中介紹null的替代方案。

類型轉換

精度轉換

float:

float 數據類型是單精度、32位、符合IEEE 754標准的浮點數;

float 在儲存大型浮點數組的時候可節省內存空間;

默認值是 0.0f;

浮點數不能用來表示精確的值,如貨幣;

例子:float f1 = 234.5f。

double:

double 數據類型是雙精度、64 位、符合IEEE 754標准的浮點數;

浮點數的默認類型為double類型;

double類型同樣不能表示精確的值,如貨幣;

默認值是 0.0d;

例子:double d1 = 123.4。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM