scala版本:2.10.5
一 函式是第一等公民
1、把函式作為實參傳遞給另外乙個函式。
2、把函式作為返回值。
3、把函式賦值給變數。
4、把函式儲存在資料結構裡。
在scala中,函式就像普通變數一樣,同樣也具有函式的型別。
二 函式型別
1、定義
在scala語言中,函式型別的格式為a =>b,表示乙個接受型別a的引數,並返回型別b的函式。
例子:int => string 是把整型對映為字串的函式型別
2、**
package
test_first
object
demo
extends
def add(x
:int,y
:int)=x
+y
println
(operate
(add
))
def greeting
()=(
name
:string
)=>
val test
=greeting
()
println
(test
("cakin24"
))
def multiplyby
(factor
:double
)=(x
:double
)=>
factor
*x
val x
=multiplyby(10
)
println(x
(50))
}
3、執行結果
[10]
8hello cakin24
500.0
三 高階函式
1、定義
用函式作為形參或返回值的函式,稱為高階函式。
def operate(f:(int,int)=>int)=
def greeting() =(name:string) =>
2、**
package
test_first
object
demo
extends
3、執行結果
[10]
四 匿名函式
就是函式常量,也稱為函式文字量。
在scala裡,匿名函式的定義格式為
(形參列表) =>
箭頭左邊是引數列表,右邊是函式體。
使用匿名函式後,我們的**變得更簡潔了。
1、匿名函式為1個引數。
var inc = (x:int) => x+1
以上例項的 inc 現在可作為乙個函式,使用方式如下:
var x = inc(7)-1
2、匿名函式中定義多個引數:
var mul = (x: int, y: int) => x*y
mul 現在可作為乙個函式,使用方式如下:
println(mul(3, 4))
3、不給匿名函式設定引數,如下所示:
var userdir = () =>
userdir 現在可作為乙個函式,使用方式如下:
println( userdir() )
五 匿名函式例項
package
test_first
object
demo
extends
六 匿名函式例項
multiplier(1) value = 3
multiplier(2) value = 6
參考:
Scala高階函式和匿名函式
目錄 一 函式是第一等公民 二 函式型別 1 定義 2 3 執行結果 三 高階函式 1 定義 2 3 執行結果 四 匿名函式 1 匿名函式為1個引數。2 匿名函式中定義多個引數 3 不給匿名函式設定引數 五 匿名函式例項 1 把函式作為實參傳遞給另外乙個函式。2 把函式作為返回值。3 把函式賦值給變...
高階函式和匿名函式
1.高階函式 高階函式就是把函式當成引數傳遞的函式。例如 def add x,y,f return f x f y print add 4,3,abs 結果是 7 map 函式 map 函式的python內建的高階函式,他接受乙個函式f 和引數list,並把list的元素傳遞給函式f,然後返回乙個函...
scala 高階函式 高階運算元
定義 引數為函式的函式稱為高階函式 在 scala 中,函式是一等公民,函式可以像物件一樣進行傳遞 函式可以賦值給變數 函式賦值給變數例子 def main args array string unit def foo 上面的例子中,foo 函式並沒有引數,我們寫乙個可以傳入引數的函式傳遞給變數 d...