Scala學習筆記


1、進入scala:直接輸入scala即可

2、退出:輸入:quit或者:q都可以

3、輸入變量一部分,按Tab鍵可補全可調用的方法名稱

4、從技術上講Scala並不是一個解釋器,實際上是將讀取的輸入內容迅速的編譯成字節碼,然后交由Java虛擬機執行,也被稱為REPL(讀取-計算-打印-循環)

5、聲明常量值使用val,如val a=10;(注:使用val定義的變量的值不允許再修改,否則會報error: reassignment to val的錯誤)

6、var 聲明的變量值可改變

7、變量在定義時必須做初始化,否則會報錯,而且同一行代碼中有多條語句時需用分號;隔開

8、Scala有9種數值類型,Byte、Int、Long、String、Double、Char、Short、Float、Boolean,與Java不同的是Scala不區分值類型與引用類型,因為你可以對一個整型使用toString方法,如1.toString

9、基本數據類型轉換:String在操作時可以被隱式轉換成StringOps對象,通過StringOps對象給字符串添加了上百種操作,如:"hello".intersect("world")找出兩個字符串中共同的字符、toString方法轉換成字符串、toInt、toDouble轉換成數字等方法

    刪除某個字符"hello".drop(2)輸出llo,刪掉了左邊兩個,dropRight(2)是刪掉右邊兩個

    "hello".filter(_!='l')輸出heo,將l過濾掉了

10、val bulder = new StringBuilder;builder.append("hello")定義可變字符串

11、Scala運算符號與java不同的是Scala中的運算符是當做方法來使用的,如a+b是a.+(b)的簡寫

12、調用函數,先引入響應的包,如import scala.math._(_符號類似java中的*,是一個通配符操作)

13、在Scala中允許使用字符串乘以數字,如"abc"*3輸出abcabcabc即輸出了3遍abc,但是反過來數字乘以字符串是不允許的

14、scala 在線API:http://www.scala-lang.org/api/2.11.7

15、由於Scala中有類型推斷的機制,所以定義變量時不用指定類型,如var x=1,如果想顯示指定也可以,如var m:String="abc"

16、不同於Java,Scala在如var x,y=10定義變量時x、y都會賦值10,而java中只會給y賦值10

17、如圖,x打印結果為Unit,原因在於賦值語句在scala中的返回值為Unit(跟Java中不同)

18、如圖,Scala有隱式轉化功能,點擊7行前的圖標可以看到Scala將String隱式轉換成了StringOps,即toInt是StringOps的方法,所以在以后用到String時駛入某個方法沒有定義,可以看下StringOps里面有沒有定義,其實不止String,int、double等也都有對應的RichInt、RichDouble為其提供了很多方法可以調用

19、在Scala中操作符其實調用的都是方法,如1+2是1.+(2)的簡寫,而且在Scala中如果方法的參數只有1個,可以寫成操作符的形式,如1 to 10、1 max 2等等

      在明確了方法調用的接收者的情況下,若方法只有一個參數時,調用的時候就可以省略點及括號。如 “0 to 2”,實際完整調用是 “0.to(2)”。但 “println(2)” 不能寫成 “println 10“”,因為未寫出方法調用的接收者 Console,所以可以寫成 “Console println 10”


免責聲明!

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



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