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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With