首先,让我们看看什么是函数和部分函数,然后看它们的转换过程。
Scala中的Function是用于执行特定任务的代码块。您可以使用函数来命名此代码块,并在需要时重新使用它。
示例
def divide100(a : Int) : Int = { return 100/a; }
Scala中的部分函数是仅返回特定值集的值的函数,即该函数无法返回某些输入值的值。
示例
def divide100 = new PartialFunction[Int , Int] { def isDefinedAt(a : Int) = a!=0 def apply(a: Int) = 100/a }
您可以将函数替换为部分函数,因为无法通过使用部分函数调用给定函数来更改函数的定义,这会将函数转换为函数。
//将函数转换为部分函数 object MyClass { def divide100(x:Int) = 100/x; def dividePar = new PartialFunction[Int , Int] { def isDefinedAt(a : Int) = a!=0 def apply(a: Int) = divide100(a) } def main(args: Array[String]) { print("100除以数字是 " + dividePar(20)); } }
输出:
100除以数字是 5