Scala总函数作为部分函数

mon*_*ack 9 scala partial-functions

由于总函数是部分函数的特例,我想我应该能够在需要部分函数时返回函数.

例如,

def partial : PartialFunction[Any,Any] = any => any
Run Code Online (Sandbox Code Playgroud)

当然这种语法无法编译.我的问题是,是否可以这样做,如果是这样,我需要做什么才能使语法正确.

我知道我可以做到以下几点,但这只是一个过于好奇的问题

def partial : PartialFunction[Any,Any] = {
  case any => any
}
Run Code Online (Sandbox Code Playgroud)

sen*_*nia 12

你可以使用PartialFunction.apply方法:

val partial = PartialFunction[Any,Any]{ any => any }
Run Code Online (Sandbox Code Playgroud)

如果要缩短此方法,可以导入此方法:

import PartialFunction.{apply => pf}
val partial = pf[Any,Any]{ any => any }
Run Code Online (Sandbox Code Playgroud)