Function scala,使用类成员函数作为第一类函数

Function scala,使用类成员函数作为第一类函数,function,scala,class,member,Function,Scala,Class,Member,我想将类实例的成员函数作为第一个类函数分配给变量: class A(val id:Int){ def f(u:Int)=id+u } val a= new A(0) val h=a.f // fails: interpreted as a.f(with missing parameter u) val h1 = (u:Int)=>a.f(u) // OK and does what we want 我们可以通过分配适当的匿名函数来获得所需的效果。 这是唯一的办法吗?

我想将类实例的成员函数作为第一个类函数分配给变量:

class A(val id:Int){ def f(u:Int)=id+u }
val a= new A(0)
val h=a.f         // fails: interpreted as a.f(with missing parameter u)
val h1 = (u:Int)=>a.f(u)    // OK and does what we want
我们可以通过分配适当的匿名函数来获得所需的效果。 这是唯一的办法吗?
我搜索了,但找不到任何引用。

使用占位符表示它已部分应用:

scala> class A(val id:Int){ def f(u:Int)=id+u }
defined class A

scala> val a = new A(0)
a: A = A@46a7a4cc

scala> val h = a.f _
h: Int => Int = <function1>

scala> h(2)
res0: Int = 2
scala>class A(val-id:Int){def(u:Int)=id+u}
定义的A类
scala>val a=新a(0)
a:a=A@46a7a4cc
scala>valh=a.f_
h:Int=>Int=
scala>h(2)
res0:Int=2

编辑

在REPL打印中尝试代码

scala> val h = a.f
<console>:9: error: missing arguments for method f in class A;
follow this method with `_' if you want to treat it as a partially applied function
       val h = a.f
                 ^
scala>valh=a.f
:9:错误:类A中缺少方法f的参数;
如果要将其视为部分应用的函数,请使用“\u1”遵循此方法
val h=a.f
^

使用占位符表示部分应用了占位符:

scala> class A(val id:Int){ def f(u:Int)=id+u }
defined class A

scala> val a = new A(0)
a: A = A@46a7a4cc

scala> val h = a.f _
h: Int => Int = <function1>

scala> h(2)
res0: Int = 2
scala>class A(val-id:Int){def(u:Int)=id+u}
定义的A类
scala>val a=新a(0)
a:a=A@46a7a4cc
scala>valh=a.f_
h:Int=>Int=
scala>h(2)
res0:Int=2

编辑

在REPL打印中尝试代码

scala> val h = a.f
<console>:9: error: missing arguments for method f in class A;
follow this method with `_' if you want to treat it as a partially applied function
       val h = a.f
                 ^
scala>valh=a.f
:9:错误:类A中缺少方法f的参数;
如果要将其视为部分应用的函数,请使用“\u1”遵循此方法
val h=a.f
^

谢谢!在哪里可以找到这些信息(除了这里)?@michaelmeyer在scala REPL中尝试代码通常会显示有用的错误消息。我编辑了我的答案,在这里显示了相关的答案。谢谢!在哪里可以找到这些信息(除了这里)?@michaelmeyer在scala REPL中尝试代码通常会显示有用的错误消息。我编辑了我的答案,在这里显示了相关的答案。