一塊兒學scala--基礎

scala基礎

安裝scala(不推薦使用最新版本,2.11.x夠用了)


這裏我選擇2.11.12版本,在下載頁面往下拉,選擇scala-2.11.12.msi(windows用戶),msi安裝比較簡單,一直點點就行。若是下載速度慢,建議用迅雷。
安裝完後,配置環境變量,如圖:

編輯環境變量

  • 在命令行中輸入scala -version驗證是否安裝成功。

聲明值和變量

安裝成功後在命令行中輸入scala並回車就能打開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直接建立數組。

最後

碼字不易,喜歡的點個讚唄。javascript

相關文章
相關標籤/搜索