Могу ли я превратить метод, который принимает неявный параметр, в функцию?
trait Tx
def foo(bar: Any)(implicit tx: Tx) {}
foo _ // error: could not find implicit value for parameter tx: Tx
Я пытаюсь добиться следующего, желательно, если я смогу как-то заставить его работать с простым вызовом withSelection(deleteObjects)
:
trait Test {
def atomic[A](fun: Tx => A): A
def selection: Iterable[Any]
def withSelection(fun: Iterable[Any] => Tx => Unit) {
val sel = selection
if (sel.nonEmpty) atomic { implicit tx =>
fun(sel)(tx)
}
}
object deleteAction {
def apply() {
withSelection(deleteObjects) // !
}
}
def deleteObjects(xs: Iterable[Any])(implicit tx: Tx): Unit
}
Я нашел этот вопрос, однако он не касается перехода от методов к функциям как насколько я вижу.