转载自:http://developer.51cto.com/art/200909/153295.htm
本文继续Scala讲座的第二部分内容,即将函数作为第一类对象来处理问题,希望大家喜欢。
学习scala,一定要记住函数可以作为变量和参数来使用,scala,一切都是对象。只是对象的表现形式需要自己去记住。C语言挺多可以说是过程性语言。
之前,我们学习了Scala全局变量问题的解决,下面我们继续Scala讲座,解决如何将函数作为第一类对象来处理。
将函数作为第一类对象
在函数式语言中,可以对函数像值或对象实例一样进行绑定在变量上或者作为参数来传递的操作。最近的语言,即使不是函数式语言,也可以用闭包方式来实现这些功能。
以下是将函数绑定在multiply名称上,将函数赋给变量的示例。
- scala> val multiply = (x:Int) => x * 2
- multiply: (Int) => Int =
将3传递给函数multiply返回6。
- scala> multiply(3)
- res1: Int = 6
下例中将multiply函数作为参数传递给别的函数。将函数muliply作为第一个参数,7作为第二个参数传递给函数applyFunction,得到的返回值是14。
- def applyFunction(f:(Int => Int), num:Int):Int = {
- f(num)
- }
- scala> applyFunction(multiply, 7)
- res2: Int = 14
好了,讲解完Scala函数与第一类对象,Scala讲座中旧的知识的复习就到这里了,接下来让我们体验一下正真的函数式编程。