我正在查看一段代码
case class MyClass(override implicit val x : SomeClass) extends SomeOtherClass(...) {
...
}
override implicit
在此上下文中的含义,以及如果我想使用显式参数生成MyClass
的实例,我该怎么办?
答案 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
,为简单起见)
澄清一下:此处的Int
和implicit
关键字不相关。