[Scala進階]--匿名函式和高階函式
阿新 • • 發佈:2018-12-25
一 函式是第一等公民
1、把函式作為實參傳遞給另外一個函式。2、把函式作為返回值。3、把函式賦值給變數。4、把函式儲存在資料結構裡。在Scala中,函式就像普通變數一樣,同樣也具有函式的型別。二 函式型別1、定義在Scala語言中,函式型別的格式為A =>B,表示一個接受型別A的引數,並返回型別B的函式。例子:Int => String 是把整型對映為字串的函式型別2、程式碼package test_first
object Demo extends App{
println( apply( layout,10))
// 函式 f 和 值 v 作為引數,而函式 f 又呼叫了引數 v
def apply
def layout(x:Int)="["+ x.toString()+"]"
def operate(f:(Int,Int)=>Int)={f(4,4)}
def add(x:Int,y:Int)=x+y
println(operate(add))
def greeting()=(name:String)=>{"hello"+" "+ name}
val test = greeting()
println(test("cakin24"))
def multiplyBy(factor:Double
val x=multiplyBy(10)
println(x(50))
}
package test_first
object Demo extends App{
println( apply( layout,10))
// 函式 f 和 值 v 作為引數,而函式 f 又呼叫了引數 v
def apply(f:Int=>String, v:Int)= f(v)
def layout(x:Int)="["+ x.toString()+"]"
}
package test_first
object Demo extends App{
var factor =3
val multiplier =(i:Int)=> i * factor
println("multiplier(1) value = "+ multiplier(1))
println("multiplier(2) value = "+ multiplier(2))
}