scala變量修飾符
val:修飾的是不可變的變量,不可以重新賦值的-->值
var:修飾可變變量,可以重新賦值的 --> 變量
Java中修飾常量要用final,如果沒有final的話一般都是可變的
注:scala建議全部定義為val的,除非你是業務需求,才允許把他定義成var
我們新創建一個Object
下面是var的演示
下面是val的演示
我們修改b的值
編譯器會有錯誤提示
可以看到錯誤信息
這需要知道一個概念:變量類型推斷
myVar 會被推斷為 Int 類型,myVal 會被推斷為 String 類型
上面是scala自動推斷的類型,我們並不知道是那種數據類型,如果要聲明數據類型呢?
val or var VariableName: DataType [=Initial Value or Expression]
val or var VariableName: DataType的意思是變量聲明
[=Initial Value or Expression or _]三種初始化形式
Initial Value
Expression
Scala中表達式的返回值就是最後一行代碼的執行結果
下面是Scala 支持的數據類型
相對於Java
並無基本類型與包裝類型之分
整數類型
Scala的整數類型用於存放整數值,比如 5、18、96、167等等,根據長度不同整數類型又劃分出四種類型:
Scala各整數類型有固定的表示範圍和字段長度,不受具體操作系統的影響,以保證Scala程序的可移植性。
在程序中定義一個整型變量,如果沒有指定,默認為Int類型,如果要定義Long類型,需要在後面加上“l”或者“L”,推薦用“L”。
最大值的獲取方式:
這裡有一種加s的輸出方式
print(s"$a")輸出為變量的值
println()打印時自動換行
如果定義一個整數超過了Int類型最大值,而不在後面加上“L”,編譯會報錯,這時需要加上“L”
浮點類型
Scala的浮點類型可以表示一個小數,比如 3.14f、7.8 、0.168等等,根據長度不同浮點類型又劃分出兩種類型:
與整數類型類似,Scala 浮點類型也有固定的表數範圍和字段長度,不受具體操作系統的影響。Scala的浮點型常量默認為Double型,聲明Float型常量,須後加“f”或“F”。通常情況下,應該使用Double型,因為它比Float型更精確(小數點後大致7位)
字符類型
字符類型可以表示單個字符,字符類型是Char,16位無符號Unicode字符(2個字節), 區間值為 U+0000 到 U+FFFF。
字符常量是用單引號(' ')括起來的單個字符,可以直接給Char賦一個整數,然後輸出時,會按照對應的unicode碼。
也可以輸出unicode
在Scala中允許使用轉義字符''來將其後的字符轉變為特殊字符型常量;
布爾類型
布爾類型也叫Boolean類型,在Scala中,Boolean類型數據只允許取值true和false,佔1個字節。
Boolean類型在程序中的作用一般是和邏輯運算結合在一起。
String字符串類型
Scala本身沒有String類,它的字符串的類型實際上是java.lang.String,因此和Java中的一樣,String是一個不可變的對象,所以該對象不可被修改。這就意味著你如果修改字符串就會產生一個新的字符串對象。
可以去除豎線
Unit類型、Null類型和Nothing類型
Unit類型用來標識過程,也就是沒有明確返回值的函數,由此可見,Unit類似於Java裡的void。Unit只有一個實例:(),這個實例也沒有實質的意義。
Null類只有一個實例對象:null,類似於Java中的null引用。null可以賦值給任意引用類型(AnyRef),但是不能賦值給值類型(AnyVal: 比如 Int, Float,Char, Boolean,Long,Double,Byte,Short)。
Nothing,可以作為沒有正常返回值的方法的返回類型,非常直觀的告訴你這個方法不會正常返回,而且由於Nothing是其他任意類型的子類,在開發中可以將Nothing返回給任意變量或函數,在拋出異常方面應用較多。
閱讀更多 分享電腦學習 的文章