假设我定义了一个函数:
def hello(name:String, words:String) = println("Hello!" + name + words)
然后我定义了一个偏函数:
def p = hello _
打印 p,显示:
(String, String) => Unit = <function2>
没有显示函数名称。hello
是否可以从部分函数中获取原始方法名称p
?
假设我定义了一个函数:
def hello(name:String, words:String) = println("Hello!" + name + words)
然后我定义了一个偏函数:
def p = hello _
打印 p,显示:
(String, String) => Unit = <function2>
没有显示函数名称。hello
是否可以从部分函数中获取原始方法名称p
?
最近在邮件列表上有一些关于一种语言结构的讨论,该结构允许您识别您所在的当前方法。它会被称为类似的东西thisMethod
,并且本质上会this
为类实例做的方法做。
我很想知道它如何与函数交互(这是与方法不同的概念)。Yourp
是通过部分应用该方法创建的匿名函数hello
(同样,您需要在这里小心,“部分应用的函数与 a 非常不同PartialFunction
)。然后调用的实际方法将apply
在此函数对象上,并且有thisMethod
在这种情况下如何表现的几种可能性。
无论发生什么,p
都只是一个对象引用,不要期望能够将其作为名称来访问。
不。
它是我很想拥有的一个功能,但它存在严重的概念问题,例如,当同一个函数被赋予两个名称时会发生什么......它应该仍然是同一个函数,不是吗?
更新以回应评论:
def p = 你好 _ def q = p
q的名字是什么?吗?还是你好?或打印?我很难想象一个简单、一致和有用的解决方案。
...这实际上是一个“部分应用的函数”,它是通过调用你的 hello 函数而不应用参数来匿名创建的。它没有要显示的明确名称。