第一次使用,暈菜了_(¦3」∠)_
目錄
1、=>的用法
1.1 匿名函式
1.2 按名呼叫(by-name parameters)
1.3 表示函式的型別
1.4 模式匹配(case語句)
2、3、->的用法
var userdir = () =>
println( userdir() ) //yourpath
// mul這時候相當於乙個函式啦,給函式傳x,y引數,執行x*y的動作
var mul = (x: int, y: int) => x*y
println(mul(3, 4)) //12
// 無傳入引數
var test = () =>
println(test)
// hello$$$lambda$19/0x00000001000c6c40@3ecd23d9
// 至於結果為什麼是這樣的,我還不清楚。。。
}scala 中允許使用高階函式, 高階函式可以使用其他函式作為引數,或者使用函式作為輸出結果。
object byname
// 函式 f 和 值 v 作為引數,而函式 f 又呼叫了引數 v
上圖換成boolean就編譯失敗了。。。
題外話(scala中函式和方法真的有不一樣)scala method(方法) 和 functio(函式) 的區別
暫時我還沒有用到(*^▽^*)
在模式匹配 match 和 try-catch 都用 「=>」表示輸出的結果或返回的值
def matchtest(x: int): string = x match
println(matchtest(3))
}// many
// 這段**也可以看出,scala並不需要main方法
// foreach迴圈,可變引數的迴圈
def printstrings( args:string* ) =
}// for (i
// println(i + " 的階乘為: = " + factorial(i) )
只會出現在k->v裡面。
object test }/*
colors 中的鍵為 : set(red, azure, peru)
colors 中的值為 : maplike(#ff0000, #f0ffff, #cd853f)
檢測 colors 是否為空 : false
檢測 nums 是否為空 : true
*/
後續還有
上界 <:, 下界>:, 視界 <%, 邊界 :, 協變 +t, 逆變-t
可怕。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
以上內容參考:
scala中=>與<=的區別
使用scala寫排序:
Scala中大箭頭的應用場景
def main args array string unit def test x int x 2 def test2 x int x trx int int int string 左邊是引數型別,右邊是返回值型別。def main args array string unit 匿名函式定義,左邊...
scala中「 」的4種使用場景
表示函式的返回型別 function type scala def double x int int x 2 double x int int 定義乙個函式變數 scala var x int int double x int int 呼叫 scala x 2 res1 int 4 函式double...
scala中「 」的4種使用場景
scala def double x int int x 2 double x int int 定義乙個函式變數 scala var x int int double x int int 呼叫 scala x 2 res1 int 4 函式double的型別就是 x int int 或者 int i...