學習Scala 方法與函式
導讀 | scala 是一門多正規化(multi-paradigm)的程式語言,設計初衷是要整合物件導向程式設計和函數語言程式設計的各種特性。Scala 執行在 Java 虛擬機器上,併相容現有的 Java 程式。 |
Scala 有方法與函式,二者在語義上的區別很小。Scala 方法是類的一部分,而函式是一個物件可以賦值給一個變數。換句話來說在類中定義的函式即是方法。Scala 中的方法跟 Java 的類似,方法是組成類的一部分。Scala 中的函式則是一個完整的物件,Scala 中的函式其實就是繼承了 Trait 的類的物件。Scala 中使用 val 語句可以定義函式,def 語句定義方法。
class Test{ def m(x: Int) = x + 3 val f = (x: Int) => x + 3 }
Scala 方法宣告格式如下:
def functionName ([引數列表]) : [return type]
如果你不寫等於號和方法主體,那麼方法會被隱式宣告為抽象(abstract),包含它的型別於是也是一個抽象型別。
方法定義由一個 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!") } }
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
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2732579/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Scala 的方法與函式函式
- scala語法 - 方法與函式函式
- scala(三)函式函式
- python中list方法與函式的學習總結Python函式
- Scala與Java差異(三)之函式Java函式
- 04 | 函式與優化方法:模型的自我學習(上)函式優化模型
- 函式學習函式
- C#和TS/JS的對比學習02:函式與方法C#JS函式
- JavaScript | 函式與方法JavaScript函式
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式
- MySQL函式學習(一)-----字串函式MySql函式字串
- js變數與函式常識學習JS變數函式
- 一門多正規化的程式語言Scala學習收尾-函式的使用函式
- Scala 的學習
- 函式學習五函式
- 函式學習二函式
- 函式學習四函式
- 函式學習六函式
- 函式學習三函式
- 函式的學習函式
- 學習Rust 函式Rust函式
- Scala學習總結(from scala for the Impatient)
- 【Go語言學習】匿名函式與閉包Go函式
- Scala學習筆記筆記
- Scala基礎學習
- Python學習之函式Python函式
- 字串函式學習三字串函式
- 字串函式學習二字串函式
- 字串函式學習一字串函式
- TypeScript學習(二)—— 函式TypeScript函式
- 好程式設計師大資料學習路線分享Scala系列之集合操作函式程式設計師大資料函式
- Scala(一):函式、流程控制、引數函式
- numpy學習回顧-數學函式及邏輯函式函式
- 2. 流程控制 與 函式 |《 刻意學習 Golang 》函式Golang
- 個人python與dl學習常見常用函式Python函式
- 2020-09-29【學習筆記】scala語言(三十三) scala中的抽象方法筆記抽象
- 高階函式與標籤函式,解構賦值與物件字面量的簡化學習函式賦值物件
- PHP 手冊 (類與物件) 學習筆記五:建構函式和解構函式PHP物件筆記函式