在第一篇章中,介绍了Scala面向对象和函数式编程的特性,在函数式编程中,函数式头等公民,可以像任何其它数据类型一样被传递和操作.在函数式编程中,我们只需要将逻辑包在函数当中作为参数传入即可.
1 :...把函数当做参数
在Scala中,函数式"头等公民",我们可以在变量中存放函数
val num = 2.2
val fun = scala.math.ceil _
在上述代码中将num设为2.2, fun...设为一个ceil函数, scala.math.ceil 函数后的 _ 意味着指定的这个是函数
之后,我们可以这样来调用
val result = fun(num)
在这里,fun是一个包含函数的变量...,而不是一个固定的函数
同时,我们也可以将函数fun当做参数传递给另一个函数
Array(2.2,1.3,2.1).map(fun)
map方法接收一个函数参数,将它应用到数组中的所有值,然后返回结果中的数组...传入参数中进行计算
getValue(scala.math.ceil _) // 2
因为getValue是一个接收函数参数的函数,因此它被称作高阶函数
高阶函数也可以产出另一个函数,比如:
def