如果我上的方法(在這裏我的情況類的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