处理内部隐式参数列表所需的显式参数

时间:2014-05-19 14:47:05

标签: scala implicit

我目前正在使用一个代码库,该代码库需要一个显式参数来为其实现的某些部分设置隐式范围:

class UsesAkka(system: ActorSystem) {
   implicit val systemImplicit = system

   // code using implicit ActorSystem ...
}

我有两个问题:

  1. 是否有一种更简洁的方式来推广'隐式的显式参数 范围而不影响班级的签名?

  2. 是否一般建议始终通过隐式参数列表导入某些类型,例如ActorSystem用于Akka应用程序?

  3. 从语义上讲,我觉得有一种类型的显式依赖可能是另一种类型的隐式依赖,但翻转implicit切换似乎会产生系统性影响。整个代码库。

1 个答案:

答案 0 :(得分:1)

为什么不让systemImplicit私密?

class UsesAkka(system: ActorSystem) {
   private implicit val systemImplicit = system
// ^^^^^^^

   // ...
}

这样,您就不会更改UsesAkka的签名。