通常,我先在同一个文件中写 a case class
,然后是同伴object
,就在下面。但是当试图implicit
在同伴中导入声明时,我不得不切换声明的顺序(显然我不想要)。克服这种情况的推荐做法是什么?
对于具体情况,以下代码不起作用:
object SomeLib {
def doSomething[T : List](t: T) = "meh"
}
case class FooWorker(x: String) {
import FooWorker._ // bring the implicit in scope for doSomething
def then(event: String) : FooWorker = {
copy(x = SomeLib.doSomething(event)) // requires implicit
}
}
object FooWorker {
implicit val list = List("a", "b", "c")
}
但是,如果我在它起作用object FooWorker
之前声明。case class FooWorker
我正在使用 Scala 2.11.6 和 SBT 进行测试。非常感谢!