Scala中的部分函数
Scala部分函数
部分函数是一个函数,只为一组特定的值返回值,即该功能不能用于某些输入值返回值。定义此函数的目的是在处理代码时仅允许某些值。像被0除的情况一样,我们需要限制除法以避免错误。
这些是Scala编程语言的不一致功能,在某些情况下,它们可能很有用。
Scala中部分函数的实现也需要其他方法。用于实现的方法是apply()和isDefinedAt()。另外,您使用case语句来实现它。
apply()方法用于显示功能的应用。
isDefinedAt()方法用于检查值是否在函数范围内。
语法:
var function_name = new PartialFunction[input_type, return_type]
范例1:
使用和方法实现部分功能。isdefinedat()apply()
object MyObject
{
val divide = new PartialFunction[Int, Int]
{
def isDefinedAt(q: Int) = q != 0
def apply(q: Int) = 124 / q
}
def main(args: Array[String])
{
println("该数字除以12是 " + divide(12))
}
}输出结果
该数字除以12是 10
范例2:
使用orElse语句实现部分函数。
object MyObject
{
val Case1: PartialFunction[Int, String] =
{
case x if (x % 3) != 0 => "Odd"
}
val Case2: PartialFunction[Int, String] =
{
case y if (y % 2) == 0 => "Even"
}
val evenorodd = Case1 orElse Case2
def main(args: Array[String])
{
var x= 324
println("number "+x+" is "+evenorodd(x))
}
}输出结果
number 324 is Even
范例3:
使用andThen语句实现部分函数。
object MyObject
{
def main(args: Array[String])
{
val operation1: PartialFunction[Int, Int] =
{
case x if (x%4)!= 0=> x*42
}
val operation2=(x: Int)=> x/3
val op = operation1 andThen operation2
println("Initial value is 34\t and the value after operations is "+op(34))
}
}输出结果
Initial value is 34 and the value after operations is 476
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短