假设我想将 ExecutionContext 作为参数显式传递给方法,但想在该方法的主体中隐式使用该上下文。我可以使用以下简单的代码片段来实现这一点:

  def run(foo: Unit => Unit,
          ex1: ScheduledExecutorService) {
    import scala.concurrent.duration._
    implicit val ex2 = ex1
    scheduleAtFixedRate(foo, 1.seconds, 3.seconds) // pass ex2 implicitly, not explicitly
  }

有没有办法在不将 ex1 重新分配给 ex2 的情况下做到这一点,但仍然需要明确传递参数?

最佳答案

不可以。如果您想要求显式传入参数,在函数体内隐式使用它的唯一方法是将其重新分配给隐式变量。然而,为什么你会想要这样做违背了我的推理。

关于scala - 在 Scala 中,隐式使用参数,但不要隐式传递它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23876436/

10-13 08:03