Scala : Functions and Parameters
April 20th, 2010
No comments
一个Function 是一个实例
在scala中,function是类的实例,所以在一个function上进行和类的实例一样的操作,下面创建了一个function并将它赋值给一个变量:
scala> val f:Int => String = x => "Dude: "+x f: (Int) => String = <function1>
实际上它相当于:
scala> val f:(Int => String) = { x=> "Dude :" +x }
f: (Int) => String = <function1>
可以在 f上调用方法:
scala> f.toString res0: java.lang.String = <function1> scala> f == f res1: Boolean = true scala> f == 4 res2: Boolean = false
用一个参数来apply function:
scala> f(44) res3: String = Dude: 44
functions 作为参数传递
function能像任何其它参数那样被传递给方法。下面定义一个w42 方法,它接收一个输入为Int返回为String的function,在这里w42方法apply 42给函数,并返回結果。
scala> def w42(f: Int => String) = f(42) w42: (f: (Int) => String)String
用函数变量来调用它:
scala> w42(f) res11: String = Dude: 42
评论