scala_partialFunction

偏函数

语法

1
2
3
val pf: PartialFunction[Int, String] = {
case i if i%2 == 0 => "even"
}

也可以由orElse组成:

1
2
3
4
val tf: (Int => String) = pf orElse { case _ => "odd"}

tf(1) == "odd"
tf(2) == "even"

1
2
3
4
5
6
7
8
9
10
11
trait Publisher[T] {
def subscribe(f: PartialFunction[T, Unit])
}

val publisher: Publisher[Int] = ..
//定义subscribe函数
publisher.subscribe {
case i if isPrime(i) => println("found prime", i)
case i if i%2 == 0 => count += 2

}

偏应用函数

偏应用函数(Partial Applied Function)是缺少部分参数的函数,是一个逻辑上概念

语法和示例

Scala里,当你调用函数,传入任何需要的参数,你就是在把函数应用到参数上。如,给定下列函数:

1
2
scala> def sum(a: Int, b: Int, c: Int) = a + b + c
sum: (Int,Int,Int)Int

偏应用函数是一种表达式,你不需要提供函数需要的所有参数。代之以仅提供部分,或不提供所需参数

1
2
scala> val a = sum _
a: (Int, Int, Int) => Int = < function>

Scala: 偏函数(PartialFunction) && 偏应用函数(Partial Applied Function

欢迎关注我的公众号:沉迷Spring
显示 Gitment 评论
0%