soc*_*soc 11 syntax language-features programming-languages scala language-design
标题几乎总结了我的问题.
案例类继承的弃用和删除是一个非常新的,我想知道在此之前哪些事情已被删除/实质性更改.我记得valfor循环和一些不同的名称object以及一些requires关键字.
我希望看到代码示例,说明事情的使用方式/以后如何更换它们,以及实际版本何时发生以及理由为何!
PS:每个答案一个项目似乎是个好主意!
案例类继承是一个短暂的特性:它在2.7中引入,在2.8/2.9中弃用,最后在2.10中删除.
例:
case class Foo(a: Int, b: Int)
case class Bar extends Foo(42, 43)
Run Code Online (Sandbox Code Playgroud)
问题是自动提供的等式实现在继承方面并没有真正起作用,因此删除了此功能.
删除case类继承也有一个很好的效果:它将允许product***通过继承具体ProductN特性来提供更好的类型化方法:
val f = Foo(1,2).productIterator
f: Iterator[Any] = non-empty iterator // < 2.10
f: Iterator[Int] = non-empty iterator // 2.10 with -Xexperimental
Run Code Online (Sandbox Code Playgroud)
在 Scala 2.7 中可以声明类型的事物int(没有大写的“I”)。由于 Scala 不支持原始值的概念,并试图尽可能与所有内容保持一致,因此该“功能”已被弃用。
| 归档时间: |
|
| 查看次数: |
544 次 |
| 最近记录: |