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
Not sure what you're trying to achieve, but something like this could do:
def foo(implicit a: Int, b: String): Unit = {
def helper(a: Int)(implicit b: String): Unit =
if (a > 0) {
println(b)
helper(a - 1)
}
helper(a)
}
It is not possible to leave out some implicit parameters. So, in your example
def foo(implicit a: Int, b: String): Unit = ???
It is not possible to only specify a
. However, you can specify the default value of the implicit parameter, for example
def foo(implicit a: Int, b: String = "---"): Unit = ???
Where 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.