【Scala一】Scala各種符號的含義
阿新 • • 發佈:2018-12-25
::運算子
::(兩個冒號)表示普通元素與List的連線操作,比如:
val a = 1
val b = List(3, 4)
val c = 1 :: b
則c的結果是List(1,3,4),需要注意的是,1:: b操作,::是右側物件的方法,即它是b物件的方法,而::左側的運算數是::方法的引數,所以1::b的含義是b.::(1)
+ - * / %運算子
在Scala中,+,-,*,/都是函式,比如 1+2,實質上是物件1上呼叫+函式,傳入的引數是2,等價於(1).+(2)
=>
_N(下劃線數字)
val pair = (99, "Luftballons") println(pair._1) println(pair._2)
_N用於訪問元組的第N個元素(N從1開始算起),元組不同於List或者Array,元組(Tuple)中的元素可以不同
->
->方法是所有Scala物件都有的方法,比如A->B,->方法呼叫的結果是返回一個二元的元組(A,B)
<-
def printArgs(args: Array[String]): Unit = {
for (arg <- args) //表示什麼含義,<-應該是一個函式,這個函式是哪個物件呼叫的?
println(arg)
}
Scala方法定義語法
如果函式體中的語句是一個,那麼可以將包著方法體的{}省略,如:
def max(x :Int, y :Int) :Int = if (x > y) x else y;
<- 運算子
<-用於for迴圈中,如下所示
for (A <- B) {
println(A)
}
<-用於遍歷集合物件(可遍歷物件)B,在每次遍歷的過程中,生成一個新的物件A,這個A是val,而不是var,然後對迴圈體中對A進行處理,<-在Scala中稱為generator。 不需要顯式的指定A的型別,因為Scala使用自動推導的方式根據B的元素型別得出A的型別