scala學習筆記 理解函式

2021-06-28 17:22:48 字數 660 閱讀 7419

定義乙個函式:

scala> def foo(x:int)=x*2

foo: (x: int)int

可以採用匿名引數:

scala> def

foo:((int)=>int) = _*2

foo: int => int

這個函式的型別是int=>int:

scala> var bar = foo _

bar: int=> int = scala> var

bar:(int)=>int = foo

bar: int=> int =

可以直接定義指向匿名函式的變數:

scala> var

foo = (x:int)=>x*2

foo: int=> int =

如下**也可以達到同樣的效果:

scala> def foo = (x:int)=>x*2

foo: int => int

scala> def foo(x:int)=x*2

foo: (x: int)int

但個人覺得(待證實),第一種寫法相當於先定義了乙個匿名函式,然後再賦值給foo

scala學習筆記 高階函式

scala混合了物件導向和函式式的特性。在函式式程式語言裡,函式是 頭等公民 也就是說函式很重要,它可以像任何其他資料型別一樣被傳遞和操作。也就是說,函式可以作為乙個值傳給乙個變數。在scala中,函式是 頭等公民 就和數字一樣。可以在變數中存放函式 val a ceil val b sqrt 當然...

scala學習筆記之函式

函式是一組一起執行乙個任務的語句。函式的宣告 如果你不寫等於號和方法主體,那麼方法會被隱式宣告為 抽象 abstract 包含它的型別於是也是乙個抽象型別。def functionname 引數列表 return type 函式的使用 傳名函式 通過指定函式引數名,並且不需要按照順序向函式傳遞引數 ...

Scala學習筆記 函式特性

一 傳名與傳值的區別 在進入函式內部前,傳值呼叫方式就已經將引數表示式的值計算完畢,而傳名呼叫是在函式內部進行引數表示式的值計算的。這就造成一種現象,每次使用傳名呼叫時,直譯器都會計算一次表示式值。二 引數傳遞的時候也具有指定引數名的能力。三 scala允許指明函式的最後乙個引數可以是重複的,即我們...