scala定義函式的幾種方式

2021-08-16 20:29:10 字數 829 閱讀 3238

scala是物件導向的語言,同時也是函式式程式語言。函式在scala中是一等公民,它和變數一樣,既可以作為其他函式的引數,也可以將函式賦值給乙個變數。

在scala中定義函式有很多方式,不熟悉scala的同學初看之時難免被搞得暈頭轉向。這裡,我試圖按照函式是否有返回值來總結一下函式定義的規律,僅供參考。

一、有返回值的函式定義:

1、標準形式(就是函式形參,返回型別,return語句全有)

def addint(a:int, b:int):int =

unit關鍵字表示函式無返回值。

2、省略unit

和有返回值類似,這裡也可以省略unit,讓scala自己去知道這個函式無返回值。那麼它是怎麼知道的呢?就是省略等號。當函式定義沒有等號的時候,scala認為這個函式無返回值。

def retrunnone(a:int,b:int){

print(a + b)

最後,我們說說也是經常會看到的一種函式定義——匿名函式。

匿名函式顧名思義,就是沒有名字的函式。它可以作為函式的引數,也可以直接賦值給變數。

val addint = (x:int,y:int)=> x + y  //將乙個函式賦值給變數,呼叫的時候addint(1,2)

def myfun(f : (int,int) => int, x:int, y:int) = f(x,y) 

上面這個函式定義了乙個匿名函式作為函式的引數,這個匿名函式有兩個int的引數,返回型別是int。

呼叫的時候我們可以將任何滿足匿名函式條件的函式傳入,比如addint。

那麼就是myfun(addint, 1, 2),返回的是3。

Scala 定義函式的幾種方式

scala中定義函式的幾種方式如下 1.規範化寫法,scala 函式的返回值是最後一行 def addint a int,b int int unit,是scala語言中資料型別的一種,表示無值,用作不返回任何結果的方法 def returnunit unit 省略返回值型別和等於號,返回的是 de...

scala函式定義的幾種方法

scala看了有幾天了,也試著寫了 hello world 今天試著練習伴生物件的時候,突然搞不明白scala伴生物件中定義的函式,並不能按我的想法工作。scala真是個非常靈活的語言,這裡還是總結下函式定義的幾種情況吧。1 規規矩矩的寫法,帶有等號 大括號和返回值型別的形式 def myfunc ...

函式定義的幾種方式

函式定義的形式很多.常見的有下面幾種.1.自定義函式 命名函式 function fn 2.函式表示式 匿名函式 var fun function 3.利用new function n1 n2 n3 函式體 var fun new function a b c console.log a b c f...