Scala學習筆記 函式特性

2021-09-29 03:04:45 字數 593 閱讀 7102

一、傳名與傳值的區別

在進入函式內部前,傳值呼叫方式就已經將引數表示式的值計算完畢,而傳名呼叫是在函式內部進行引數表示式的值計算的。這就造成一種現象,每次使用傳名呼叫時,直譯器都會計算一次表示式值。

二、引數傳遞的時候也具有指定引數名的能力。

三、scala允許指明函式的最後乙個引數可以是重複的,即我們不需要指定函式引數的個數,可以像函式傳入。scala通過在引數的型別之後放乙個星號 「*」 來設定可變引數(可重複的引數)。

def printstrings(args: string*) = 

def layout[a](x:a) = "[" + x + "]"

}

七、scala函式巢狀

我們可以在scala函式內部定義函式,定義在函式內的函式稱之為區域性函式。

var inc = (x:int) => x + 1

var mul = (x: int, y: int) => x + y

八、scala匿名函式

定義匿名函式的語法很簡單,箭頭左邊是引數列表,右邊是函式體。

使用匿名函式後,我們的**就變的更簡單了。

scala學習筆記 理解函式

定義乙個函式 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 in...

scala學習筆記 高階函式

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

scala學習筆記之函式

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