如果我上的方法(在这里我的情况类的apply()
法)使用部分应用程序部分应用程序,它的工作原理:与命名参数
case class Foo(a : Int, b : Int)
val pf : Int => Foo = Foo(_ ,2)
但是,它似乎并不可能使用此结合命名参数,例如:
case class Foo(a : Int, b : Int)
val pf : Int => Foo = Foo(a = _ ,b = 2)
它导致:
Error:(7, 33) not found: value a
lazy val pf : Int => Foo = Foo(a = _ ,b = 2)
^
有没有解决这个办法吗?我需要这个,因为我有大量默认参数的案例类,我不想指定大部分时间。
(斯卡拉2.11)
已经有你的问题的答案了,但你也可以从Scala-lang开发者给出的同一个问题中解读[这里](http://stackoverflow.com/a/5259946/4804363) ) – Fellrond
是的,你是对的这是上述的重复;耻辱我无法在搜索中找到它。 – Luciano
应该补充说,它可以做'Foo(_,b = 2)',即如果变量参数出现在任何命名参数之前。 – Luciano