Scala 箭頭符號使用場景1 的用法

2021-10-09 12:16:51 字數 1665 閱讀 2063

第一次使用,暈菜了_(¦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...