“覆盖隐含”是什么意思?

时间:2015-09-28 17:43:43

标签: scala

我正在查看一段代码

case class MyClass(override implicit val x : SomeClass) extends SomeOtherClass(...) {
    ...
}

override implicit在此上下文中的含义,以及如果我想使用显式参数生成MyClass的实例,我该怎么办?

1 个答案:

答案 0 :(得分:3)

这意味着SomeOtherClass的{​​{1}}字段x将被您在SomeClass的构造函数中传递的x覆盖。< / p>

MyClass将为我的班级implicit生成x参数,并允许以下代码:

implicit

如果要使用显式参数生成implicit val someInt = 5 val a = new MyClass val b = new MyClass() val c = MyClass() // as it it a case class 的实例,可以像这样明确地传递它们:

MyClass

(示例假设val a = new MyClass()(42) SomeClass,为简单起见)

澄清一下:此处的Intimplicit关键字不相关。