scala基礎 安裝scala(不推薦使用最新版本,2.11.x夠用了) "scala官網" "2.11.12版本下載頁面" 這裡我選擇2.11.12版本,在下載頁面往下拉,選擇scala 2.11.12.msi(windows用戶),msi安裝比較簡單,一直點點就行。如果下載速度慢,建議用迅雷。 ...
scala基礎
安裝scala(不推薦使用最新版本,2.11.x夠用了)
這裡我選擇2.11.12版本,在下載頁面往下拉,選擇scala-2.11.12.msi(windows用戶),msi安裝比較簡單,一直點點就行。如果下載速度慢,建議用迅雷。
安裝完後,配置環境變數,如圖:
- 在命令行中輸入scala -version驗證是否安裝成功。
聲明值和變數
安裝成功後在命令行中輸入scala並回車就能打開scala的解釋器。每次輸入命令,解釋器都會顯示出結果。
正如你所看到的,解釋器會給結果自動命名和顯示結果類型,並且在後續操作中可以繼續使用。而解釋器這些操作過程也被稱為“讀取-求值-列印” 迴圈(read-eval-print-loop)即REPL,後面為了方便表示,我們就稱解釋器為REPL。
你還能自定義自己的名稱:
scala> val ans = 8*5+2
ans:Int = 42
這裡已val定義的值實際上是個常量,相當於java中的final,值不可改變。定義變數使用var。
一般情況下,推薦使用val,除非你真的需要改變它的內容。在定義的時候你還可以指定變數的類型,如:
var ans:Int = 8*5+2
說明:在scala中,變數和函數的類型總是寫在變數和函數的名稱後面。
常用類型
scala有七種數值類型:Byte,Char,Short,Int,Long,Float,Double和Boolean類型。scala並沒有明確區分基本類型和引用類型,就都像java中的包裝類,可以直接調用方法。
1.toString() // "1"
99.99.toInt() // 99
99.toChar() // 'c'
// 在scala中','逗號可以省略,括弧內沒有參數可以不寫括弧
1 toString //不建議哈
1.toString //這個就可以
// 在scala中有隱式轉換,比如:String對象被隱式轉換成StringOps對象,追加上百種字元串操作。
"hello".intersect("world") //返回 "lo"
// 同樣地,scala還提供了RichInt,RichDouble,RichChar等,為原來的類型增加所不具備的便捷方法。
1.to(3) // 1,2,3
1.until(3) // 1,2
通配符_
在scala中,_字元是通配符,類似java的*
val a:Int=_ // a=0
val b:Double=_ // b=0.0
val c:String=_ //c=null
val d = _ // 報錯
伴生對象
在scala中,類都有一個伴生對象,其方法就跟java中的靜態方法一樣,類名+方法名就可以直接調用。
apply方法
在scala中,我們讀取字元串中的一個字元是這樣的s(i)。
var s = "hello"
println(s(4)) // 'o'
而在java中是這樣的:
String s = "hello";
char c = s.charAt(4) // 'o'
其實scala之所以能這樣獲取字元串中的字元,是因為StringOps裡面的apply方法。
s(i) 相當於 s.apply(i) //apply可以直接省略。
很多類的伴生對象都實現了apply方法,所以我們可以直接 對象名() 實現apply方法。
val array:Array[Int] = Array(1,2,3) // 使用apply直接創建數組。
最後
碼字不易,喜歡的點個贊唄。