天天看點

scala快速入門系列【資料類型與操作符】

作為scala快速入門系列的第五篇部落格,小菌為大家帶來的是關于資料類型與操作符的内容。

scala快速入門系列【資料類型與操作符】

scala中的類型以及操作符絕大多數和java一樣,通過本篇部落格,我們将學習:

  • 與Java不一樣的一些用法
  • scala類型的繼承體系

資料類型

基礎類型 類型說明
Byte 8位帶符号整數
Short 16位帶符号整數
Int 32位帶符号整數
Long 64位帶符号整數
Char 16位無符号Unicode字元
String Char類型的序列(字元串)
Float 32位單精度浮點數
Double 64位雙精度浮點數
Boolean true或false

注意下 scala 類型與java的差別

[!NOTE]

1.scala中所有的類型都使用大寫字母開頭

2.整形使用Int而不是Inteage

3.scala中定義變量可以不寫類型,讓scala編譯器自動推斷

運算符

類别 操作符
算術運算符 +、-、*、/
關系運算符 >、<、==、!=、>=、<=
邏輯運算符 &&、||、!
位運算符 &、||、^、<<、>>

[!NOTE]

  • scala中沒有,++、–運算符
  • 與Java不一樣,在scala中,可以直接使用

    ==

    !=

    進行比較,它們與

    equals

    方法表示一緻。而比較兩個對象的引用值,使用eq

示例

有一個字元串"abc",再建立第二個字元串,值為:在第一個字元串後拼接一個空字元串。

然後使用比較這兩個字元串是否相等、再檢視它們的引用值是否相等。

參考代碼

scala快速入門系列【資料類型與操作符】

scala類型層次結構

scala快速入門系列【資料類型與操作符】
類型 說明
Any 所有類型的父類,,它有兩個子類AnyRef與AnyVal
AnyVal 所有數值類型的父類
AnyRef 所有對象類型(引用類型)的父類
Unit 表示空,Unit是AnyVal的子類,它隻有一個的執行個體() 它類似于Java中的void,但scala要比Java更加面向對象
Null Null是AnyRef的子類,也就是說它是所有引用類型的子類。它的執行個體是null 可以将null指派給任何對象類型
Nothing 所有類型的子類 不能直接建立該類型執行個體,某個方法抛出異常時,傳回的就是Nothing類型,因為 Nothing是所有類的子類,那麼它可以指派為任何類型

通過下面一個執行個體,為大家展示一個nothing的執行個體。

Nothing

scala快速入門系列【資料類型與操作符】

問題

以下代碼是否有問題?

val b:Int = null           

複制

結果

scala會解釋報錯: Null類型并不能轉換為Int類型,說明Null類型并不是Int類型的子類

本篇部落格到這裡就結束了,感興趣的小夥伴們可以持續關注喲~下一篇将為大家帶來

條件表達式

的基本使用,敬請期待!