Is it possible to leave out some implicit parameters but not all of them? I tried with named parameters:
def foo(implicit a: Int, b: String) {
if (a > 0) {
println(b)
foo(a = a-1) // error
}
}
Unfortunately, the compiler rejects the recursive call of foo
with:
not enough arguments for method foo
Unspecified value parameter b
It is not possible to leave out some implicit parameters. So, in your example
It is not possible to only specify
a
. However, you can specify the default value of the implicit parameter, for exampleWhere if
b
is not implicitly available,"---"
will be used.Remember that the
implicit
keyword marks the parameter list as implicit, not that one parameter as implicit.Not sure what you're trying to achieve, but something like this could do: