scala函数组合

来源:互联网 发布:淘宝页面怎样设为首页 编辑:程序博客网 时间:2024/05/21 14:58

compose

scala> def f(a:Int)=2*af: (a: Int)Intscala> def g(b:Int)=3*bg: (b: Int)Intscala> def fComposeg=f _ compose g _fComposeg: Int => Intscala> fComposeg(1)res8: Int = 6

andThen

andThen 和 compose很像,但是调用顺序是先调用第一个函数,然后调用第二个,即g(f(x))

理解PartialFunction(偏函数)

对给定的输入参数类型,函数可接受该类型的任何值。换句话说,一个(Int) => String 的函数可以接收任意Int值,并返回一个字符串。

对给定的输入参数类型,偏函数只能接受该类型的某些特定的值。一个定义为(Int) => String 的偏函数可能不能接受所有Int值为输入。

isDefinedAt 是PartialFunction的一个方法,用来确定PartialFunction是否能接受一个给定的参数。

注意 偏函数PartialFunction 和我们前面提到的部分应用函数是无关的。
PartialFunctions可以使用orElse组成新的函数,得到的PartialFunction反映了是否对给定参数进行了定义。

0 0