non*_*com 1 parameters scala case-class
我们假设我们有以下两个类:
abstract case class MyParent(param: Int) {
// ...
}
case class MyChild(param: Int) extends MyParent(param: Int) {
// ... ^^^^^ ^^^^^
}
Run Code Online (Sandbox Code Playgroud)
使它们成为案例类导致两个param使用位置都出错,这表示它需要override修改器来覆盖父类的值.这对我来说很奇怪..为什么我必须在这里发明其他的param名称..为什么这个事情的顺序是强制执行的?利润在哪里?
你永远不应该从另一个案例类派生一个案例类!
在使用scala -deprecation开始的REPL中尝试这个:
scala> case class Foo(foo: String)
defined class Foo
scala> case class Bar(override val foo: String) extends Foo(foo)
<console>:9: warning: case class `class Bar' has case ancestor `class Foo'. Case-to-case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
673 次 |
| 最近记录: |