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...