简单的Scala专栏持续更新中(关注不迷路~)简单的Scala定义PartialFunction用在模式匹配中,只有在其定义的输入范围内才会返回结果。如果输入值不在函数的定义范围内,部分函数会抛出异常。 举例 普通匹配函数可…
Scala:获取PartialFunction的结果 Scala是一种多范式编程语言,它结合了面向对象编程和函数式编程的特性。在Scala中,PartialFunction是一种特殊的函数,它只对输入的某些值进行定义,而对其他值则没有定义。 PartialFunction的结果可以通过调用apply方法来获取。如果输入的值在PartialFunction的定义范围内,apply方法将返回对应的...
Scala中有一个很有用的traits叫PartialFunction,我看了下别人的翻译叫做偏函数,但是我觉得部分函数更加确切。 那么PartialFunction是做什么用的呢?简单点说PartialFunction用在模式匹配中,是一个不完整的函数,它只实现了函数的部分功能,也就是列举了部分case的情况。
scala.Double,scala.AnyRef)-T1,@specialized(scala.Unit,scala.Boolean,scala.Int,scala.Float,scala.Long,scala.Double,scala.AnyRef)+R]extendsFunction1[T1,R]withPartialFunction[T1,R]{self=>defapply(x:T1):R=applyOrElse(x,PartialFunction.empty)}...
我们可以看到PartialFunction是一个trait,它继承自函数 (A => B), 这个函数有一个参数和一个返回值,在Scala中,该函数会被自动解析为Function1。 我们看下Function1的定义: traitFunction1[@specialized(scala.Int, scala.Long, scala.Float, scala.Double) -T1, @specialized(scala.Unit, scala.Boolean, scala...
Scala-Partial Functions(偏函数) 如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数)。 偏函数是个特质其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B的...
我们可以看到PartialFunction是一个trait,它继承自函数 (A => B), 这个函数有一个参数和一个返回值,在Scala中,该函数会被自动解析为Function1。 Function1的定义: trait Function1[@specialized(scala.Int, scala.Long, scala.Float, scala.Double) -T1, @specialized(scala.Unit, scala.Boolean, scala.Int, ...
我们可以看到PartialFunction是一个trait,它继承自函数 (A => B), 这个函数有一个参数和一个返回值,在Scala中,该函数会被自动解析为Function1。 我们看下Function1的定义: traitFunction1[@specialized(scala.Int,scala.Long,scala.Float,scala.Double)-T1,@specialized(scala.Unit,scala.Boolean,scala.Int,scala...
在Scala中,偏函数可以通过PartialFunction类来定义。PartialFunction类是一个抽象类,它有两个泛型类型参数,第一个是输入参数类型,第二个是输出参数类型。PartialFunction类有两个方法,isDefinedAt和apply。isDefinedAt方法用于判断输入参数是否在偏函数的定义域内,apply方法用于执行偏函数的操作。
scala> def inc: PartialFunction[Any, Int] = | { case i: Int => i + 1 } inc: PartialFunction[Any,Int] scala> List(1, 3, 5, "seven") collect inc res5: List[Int] = List(2, 4, 6) 1. 2. 3. 4. 5. 6. 当然,假设偏函数的逻辑很复杂,可能通过定义一个专门的类并继承Partial...