Scala中的本地函式與作為語言一等公民的函式詳解

2021-07-09 02:11:52 字數 640 閱讀 4899

內容:

1、本地函式**實戰(函式內部函式)

2、作為一等公民的函式的**實戰

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

println(increase(10))

increase = (x: int) => x + 9999

//將函式(一等公民)作為乙個值進行賦值

def processdata(filename: string, width: int)   

val source = source.fromfile(filename)

for (line <- source.getlines)

processline(line)

模組化的內部函式,體現了**的「強內聚,弱耦合」特徵

函式processline

為函式processdate

的內部函式也為私有函式,外部不可訪問,是函式操作的實現即列印滿足條件的資料。source讀取檔案,呼叫函式

processline

進行函式實現。

scala中的函式

在scala中定義函式,需要給出 函式名 引數 函式體。例如 def abs x double if x 0 x else x 如果有引數,必須要給出引數型別。如果函式不是遞迴的,返回值型別就可以不寫。scala編譯器自帶型別推導功能。如果函式體由多個表示式組成,可以用 塊的方式來組織,比如 def...

scala中的函式

1.方法定義用def,函式的引數 要寫型別,不寫型別不可以。2.函式的返回值型別可以不寫,會自動推斷 3.scala會將函式體中最後一行計算的結果當做返回值返回 4.可以寫 return 寫了return要顯式的宣告方法體的返回型別。5.定義方法時,如果不寫 那麼無論方法體中最後一行計算的結果返回是...

Scala中的高階函式

1.在變數中存放函式 1 定義函式fun1 2 將函式賦給乙個變數 注意函式名和下劃線之間有空格 3 呼叫這個函式 2.匿名函式 匿名函式沒有函式名,將函式賦給變數fun2。函式的引數是string型別,返回unit型別 3.高階函式 1 函式的引數為函式的高階函式 a 函式的第乙個引數是func函...