【发布时间】:2014-05-19 14:47:04
【问题描述】:
我目前正在使用一个代码库,该代码库需要一个显式参数才能对其部分实现具有隐式范围:
class UsesAkka(system: ActorSystem) {
implicit val systemImplicit = system
// code using implicit ActorSystem ...
}
我有两个问题:
有没有一种更简洁的方法可以将显式参数“提升”为隐式参数 范围而不影响类的签名?
一般建议是否承诺总是通过隐式参数列表导入某些类型,例如 Akka 应用程序的
ActorSystem?
从语义上讲,我觉得有一种情况,一种类型的显式依赖可能是另一种类型的隐式依赖,但翻转implicit 开关似乎会对整个代码库产生系统性影响。
【问题讨论】:
-
似乎将
system: ActorSystemnot 隐含并没有任何好处。您始终可以覆盖隐式参数。对于您的问题,我会说 no 和 maybe。