您的位置:首页 > 其它

scala函数组合

2015-08-26 14:39 197 查看

compose

scala> def f(a:Int)=2*a
f: (a: Int)Int

scala> def g(b:Int)=3*b
g: (b: Int)Int

scala> def fComposeg=f _ compose g _
fComposeg: Int => Int

scala> 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反映了是否对给定参数进行了定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: