У меня есть код Scala, аналогичный приведенному ниже. Существует неявное определение на уровне класса / объекта, и я хочу «переопределить» его неявным определением в методе. (Если вам действительно нужно знать, мне нужно изменить свой ExecutionContext
специально для рассматриваемого метода).
В этом примере я хочу использовать b
как неявное для Int
в объем метода bar
. Как я могу это сделать?
object Foo {
implicit val a: Int = 1
def bar: Int = { // Didn't pass implicit Int parameter
implicit val b: Int = 2
implicitly[Int]
}
}
Это жалуется на
error: неоднозначные неявные значения: оба значения a в объекте Foo типа Int и значение b типа Int соответствуют ожидаемому type Int
Поэтому я думаю, что Scala не может выбирать между неявной областью класса и неявной областью метода.