scala:scala基礎
阿新 • • 發佈:2018-12-29
安裝scala執行直譯器
下載scala,解壓,配置SCALA_HOME
到解壓目錄,將$SCALA_HOME/bin
加入PATH
vim /etc/profile
export SCALA_HOME=/opt/scala-2.11.8
export PATH=SCALA_HOME/bin:$PATH
命令列執行scala
開啟scala直譯器。
宣告變數
宣告常量用val,無法改變常量值;
宣告變數用var。
scala> val a,b = 1
a: Int = 1
b: Int = 1
//除非必要否則不要用var
//除非一行需要寫多個語句,否則行尾可以不加分號";"
宣告變數不用指明型別,因為型別會根據賦值語句自動確定,因此必須在宣告的時候為變數賦值。
也可以強制指明宣告變數的型別:
val greeting:String=null
val d:Double=1
定義函式方法
宣告方法用def
。
def f(s:String):Int = {
print(s+" ")
100
}
print(f("abc"))
//輸出abc 100
方法的返回值型別可以不寫,方法能自動確定(遞迴方法除外)。
方法名和方法體後要用=
連線,否則方法返回值為()
,相當於void
,()
是Unit
型別的唯一值。
因為花括號語句塊有返回值(即最後一個語句的值),所以方法返回值不用return
若無參方法定義時候方法名後面沒寫括號,則呼叫時也不能寫括號,否則報錯。
方法呼叫
1.toString //不帶引數且不改變當前物件的方法不帶圓括號
1.toString()
1.to(2)
1 to 2
scala中運算子全是方法名,如2+4
相當於2.+(4)
取陣列中指定位置的元素:
scala> "hello"(1) //這是scala中apply方法的呼叫,相當於"hello".apply(1)
res37: Char = e
有些類的伴生物件有apply
方法,就可以不用new
操作符獲得這個類的物件,如:
BigInt("123")
Array(1,2 ,4)
引入包
scala引入scala.math
包(裡面有常用的數學方法,如平方根方法sqrt
)
import math._
//引入scala.開頭的包
//scala.可以省略
//_為萬用字元相當於Java中的*