偏函数_case
如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数)
package graphx object case02 { def main(args: Array[String]): Unit = { //匿名函数 左边是参数 右边是函数实现体 (x: Int)=>{} val divide = (x: Int) => 100 / x println(divide(5)) //偏函数:PartialFunction[-A,+B],参数类型为A,返回类型为B val divide2 = new PartialFunction[Int, Int] { def isDefinedAt(x: Int): Boolean = x != 0 ///判断x是否等于0,当x = 0时抛出异常 def apply(x: Int): Int = 100 / x } println(divide2(5)) val divide3:PartialFunction[Int,Int]={ case x:Int if x!=0 =>100/x //功能和上面的代码一样,这就是偏函数的强大之处,方便,简洁!! } println(divide3(5)) def fun (x:Int) :Int= 100/x // 这是一个普通函数,这个函数可以处理所有Int 类型的参数 println(fun(5)) def fun2 : Int =>Int = { case x if x %2 ==0 => 100/x } // 这是一个偏函数,这个函数可以处理所有偶数类型的参数。偶数是Int的子集。 println(fun2(50)) } }
posted on 2020-10-27 11:16 happygril3 阅读(112) 评论(0) 收藏 举报
浙公网安备 33010602011771号