閉包函式 scala

2021-10-09 04:20:43 字數 997 閱讀 4284

**

//閉包函式  返回結果 依賴外部引數

//正常函式

val mult=

(x:int

)=>

//閉包函式

var factor=

5//依賴引數

//閉包函式mult1

val mult1=

(x:int

)=>x*factor

println(

"閉包函式(mult1):在factor="

+factor+

"時,結果為 "

+mult1(10)

) factor =

10 println(

"閉包函式(mult1):在factor="

+factor+

"時,結果為 "

+mult1(10)

)//閉包函式mult2

val mult2=

(x:int

)=>

println(

"呼叫閉包函式之前factor為:"

+factor)

println(

"閉包函式(mult2):"

+mult2(8)

) println(

"呼叫閉包函式之後factor為:"

+factor)

}

執行結果

閉包函式(mult1)

:在factor=

5時,結果為 50

閉包函式(mult1)

:在factor=

10時,結果為 100

呼叫閉包函式之前factor為:

10閉包函式(mult2)

:160

呼叫閉包函式之後factor為:

20process finished with exit code 0

Scala閉包詳解

閉包是乙個函式,返回值依賴於宣告在函式外部的乙個或多個變數。閉包通常來講可以簡單的認為是可以訪問乙個函式裡面區域性變數的另外乙個函式。如下面這段匿名的函式 val multiplier i int i 10函式體內有乙個變數 i,它作為函式的乙個引數。如下面的另一段 val multiplier i...

Scala函式式程式設計(六) 閉包

john d.cook 給物件和閉包 closure 下過乙個經典的定義 anobject is data with functions.a closure is a function with data 1 可以看到,閉包是由函式和執行時的資料決定的,閉包也因此被稱為 lambda 函式。事實上,...

Scala學習筆記 函式和閉包

1.本地函式 可以在乙個方法內再次定義乙個方法,這個方法就是外部方法的內部私有方法,省略了private關鍵字 2.頭等函式 var increase x int x 1 system.out.println increase 10 集合類的foreach方法 var list1 list 1,2 ...