使用多个参数列表调用Scala构造函数

Ral*_*lph 2 constructor scala higher-order-functions

在Scala中,我可以创建一个带有多个参数列表的方法:

def myMethod(value: Int)(fn: (Int) => Unit) {
  fn(value)
}
Run Code Online (Sandbox Code Playgroud)

并称之为:

myMethod(10) { value => println(value) }
Run Code Online (Sandbox Code Playgroud)

如何使用类构造函数执行相同的操作?我怎么称呼它?

mis*_*tor 9

这有效.

Welcome to Scala version 2.8.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.

scala> class MyClass(val value: Int)(val fn: Int => Unit)
defined class MyClass

scala> new MyClass(10)({value => println(value)})
res0: MyClass = MyClass@17577f9
Run Code Online (Sandbox Code Playgroud)

  • 啊!额外的括号.我没有它们尝试过,编译器将其解析为将类扩展为匿名子类. (2认同)