1
Учитывая следующий метод:Применение метода с Implicits Частично
scala> def f(x: Int)(implicit y: Int, z: Int) = x + y + z
f: (x: Int)(implicit y: Int, implicit z: Int)Int
я могу определить неявное, а затем применить его.
scala> implicit val x: Int = 5
x: Int = 5
scala> f(10)
res0: Int = 20
Но, видимо, я не могу указать только один неявный аргумент:
scala> f(10)(y = 10)
<console>:10: error: not enough arguments for method f:
(implicit y: Int, implicit z: Int)Int.
Unspecified value parameter z.
f(10)(y = 10)
^
Можно указать неявный аргумент, т.е. y
, но оставить z
неявного разрешения?
Nice catch. Но лучше было бы позиционировать 'implicitly' перед символом' y = 10', так как 'f (10) (z = 10, неявно)' не будет компилироваться. – Odomontois
@ Odomontois: yep, и названный аргумент в настоящее время в значительной степени лишний - однако, я хотел представить ответ как можно ближе к примеру вопроса. –