scala學習筆記1

1、REPLjava

scala解釋器讀到一個表達式,對它進行求值,將它的打印出來,接着再繼續讀下一個表達式。這個過程被稱做 讀取-打印-循環,即REPL。程序員

從技術上講,scala程序並非一個解釋器。實際發生的是,你輸入的內容被快速的編譯成字節碼,而後這段字節碼交由java虛擬機執行。正因如此,大多數scala程序員更傾向將它稱做REPL。es5

2、聲明值spa

2.1val定義的值其實是一個常量,你沒法改變它的內容。scala

scala> val result = 8*2
result: Int = 16

scala> result = 0
<console>:11: error: reassignment to val
       result = 0
              ^

scala鼓勵使用valcode

你須要給出值或者變量的類型,聲明值或者變量但不作初始化會報錯。對象

在必要的時候,你也能夠指定類型blog

scala> val result = 8*2
result: Int = 16

scala> result = 0
<console>:11: error: reassignment to val
       result = 0
              ^

3、scala經常使用類型ci

3.1基本數據類型字符串

scala和java中的數據類型同樣有8種,可是在scala中並不刻意區分基本類型和引用類型。你能夠對一個對數字執行方法,例如

scala> 1.toString()

res1: String = 1

在scala中咱們不須要包裝類型,在基本類型和包裝類型之間的轉換是scala編譯器的工做。

BigInt和BigDecimal類,用於任意大小的數字。這些類背後分別對應的是java.math.BigInteger和java.math.BigDecimal。他們用起來更加方便,你能夠用常規的數學操做符來操做他們。

3.2字符串類型

scala用底層的java.lang.String類來表示字符串。不過,他經過StringOps類給字符串追加了上百種操做。

intersect方法輸出兩個字符串共同的一組字符

scala> "hello".intersect("world")
res0: String = lo

在這個表達式中,String對象被隱式的轉換爲了StringOps對象,接着StringOps類的intersect方法被調用。

一樣的scala還提供了RichInt、RichDouble、RichChar等。他們提供了Int,Double,Char所不具有的快捷方法。咱們前面用到的1.toString就是RichInt類中的方法。首先1被轉換成了RichInt,而後再應用頭方法。

3.3類型轉換

在scala中咱們使用方法而不是強制類型轉換。

scala> 99.44.toInt
res3: Int = 99

scala> 99.toChar
res4: Char = c

scala> "99.44".toDouble
res5: Double = 99.44
相關文章
相關標籤/搜索