【发布时间】:2011-03-21 15:02:36
【问题描述】:
假设我定义了一个函数:
def hello(name:String, words:String) = println("Hello!" + name + words)
然后我定义了一个偏函数:
def p = hello _
打印 p,显示:
(String, String) => Unit = <function2>
没有显示函数名称。是否可以从偏函数p得到原方法名hello?
【问题讨论】:
-
在标签和问题标题中将“部分功能”编辑为“部分应用功能”,以便适当的人被这个问题吸引(或排斥)。
-
添加到 Rex 的评论中,“部分函数”是一个未为其域类型中的所有输入定义的函数。规范偏函数类似于 def f(x : Int) = 1/x。 Scala 还具有 PartialFunction 特征,如果函数对象想要回答指示它们在哪里和未定义的查询,则可以实现该特征。这两个概念都不应与部分应用相混淆。