scala之偏函数学习

本文介绍了Scala中的偏函数,包括其定义、示例、`lift`方法的使用及`applyOrElse`方法的解释。偏函数是只处理部分参数的PartialFunction实例,当输入不匹配时,会抛出MatchError。通过`lift`方法,可以将偏函数转换为返回Option的函数,避免异常。`applyOrElse`则提供了在匹配失败时使用回调函数的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偏函数:

偏函数是scala的一个特殊函数,可以看作为是一个残缺的函数,他只能处理一部分的参数

定义:

  • 偏函数被包在花括号内没有match的一组case语句是一个偏函数
  • 偏函数是PartialFunction[A, B]的一个实例  (A代表输入参数类型 ,B代表返回结果类型)

demo:

scala> val pf: PartialFunction[Int, Boolean] = { case i if i > 0 => i % 2 == 0}
pf: PartialFunction[Int,Boolean] = <function1>

定义一个pf偏函数,如果i大于0,那么i是偶数的话,就返回true,否则返回false;

接下来,我们输入两个参数,看下返回结果

scala> pf(-1)
scala.MatchError: -1 (of class java.lang.Integer)
  at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:255)
  at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:253)
  at $anonfun$1.applyOrElse(<console>:11)
  at $anonfun$1.applyOrElse(<console>:11)
  at scala.runtime.AbstractPartialFunction$mcZI$sp.apply$mcZI$sp(AbstractPartialFunction.scala:34)
  ... 28 elided

scala> pf(1)
res1: Boole
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值