1. 程式人生 > >scala:scala基礎

scala:scala基礎

安裝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中的*