如何在Scala中将函数转换为部分函数?

首先,让我们看看什么是函数和部分函数,然后看它们的转换过程。

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
}

将函数转换为部分函数

您可以将函数替换为部分函数,因为无法通过使用部分函数调用给定函数来更改函数的定义,这会将函数转换为函数。

Scala程序将功能转换为部分功能

//将函数转换为部分函数 
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