精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

Scala 方法與函數

scala 方法與函數

scala 有方法與函數,二者在語義上的區別很小。scala 方法是類的一部分,而函數是一個對象可以賦值給一個變量。換句話來說在類中定義的函數即是方法。

scala 中的方法跟 java 的類似,方法是組成類的一部分。

scala 中的函數則是一個完整的對象,scala 中的函數其實就是繼承了 trait 的類的對象。

scala 中使用 val 語句可以定義函數,def 語句定義方法。

class test{
  def m(x: int) = x + 3
  val f = (x: int) => x + 3
}

注意:有些翻譯上函數(function)與方法(method)是沒有區別的。

 

1. 方法聲明

scala 方法聲明格式如下:

def functionname ([參數列表]) : [return type]

如果你不寫等于號和方法主體,那么方法會被隱式聲明為抽象(abstract),包含它的類型于是也是一個抽象類型。

 

2. 方法定義

方法定義由一個 def 關鍵字開始,緊接著是可選的參數列表,一個冒號 : 和方法的返回類型,一個等于號 = ,最后是方法的主體。

scala 方法定義格式如下:

def functionname ([參數列表]) : [return type] = {
   function body
   return [expr]
}

以上代碼中 return type 可以是任意合法的 scala 數據類型。參數列表中的參數可以使用逗號分隔。

以下方法的功能是將兩個傳入的參數相加并求和:

object add{
? ?def addint( a:int, b:int ) : int = {
? ? ? var sum:int = 0
? ? ? sum = a + b

? ? ? return sum
? ?}
}

如果方法沒有返回值,可以返回為 unit,這個類似于 java 的 void, 范例如下:

object hello{
? ?def printme( ) : unit = {
? ? ? println("hello, scala!")
? ?}
}

 

3. 方法調用

scala 提供了多種不同的方法調用方式:

以下是調用方法的標準格式:

functionname( 參數列表 )

如果方法使用了范例的對象來調用,我們可以使用類似java的格式 (使用 . 號):

[instance.]functionname( 參數列表 )

以上范例演示了定義與調用方法的范例:

object test {
? ?def main(args: array[string]) {
? ? ? ? println( "returned value : " + addint(5,7) );
? ?}
? ?def addint( a:int, b:int ) : int = {
? ? ? var sum:int = 0
? ? ? sum = a + b

? ? ? return sum
? ?}
}

執行以上代碼,輸出結果為:

$ scalac test.scala 
$ scala test
returned value : 12

scala 也是一種函數式語言,所以函數是 scala 語言的核心。以下一些函數概念有助于我們更好的理解 scala 編程:

函數概念解析接案例
函數傳名調用(call-by-name) 指定函數參數名
函數 - 可變參數 遞歸函數
默認參數值 高階函數
內嵌函數 匿名函數
偏應用函數 函數柯里化(function currying)

下一節:scala 閉包

scala 教程

相關文章