soc*_*soc 11 java inheritance programming-languages scala language-design
为什么所有Scala类都继承自ScalaObject尽管该特征是完全空的并且没有(可见?)功能相比AnyRef,它确实定义了其他方法?
ScalaObject
AnyRef
不会减慢方法调用,equals()或者hashCode()因为它需要考虑另一个类(可能会覆盖方法)?
equals()
hashCode()
是不是可以将AnyRef和ScalaObject折叠成一个类?
更新: ScalaObject 已使用新的2.10版Scala 进行了根除.
Fre*_*Foo 11
ScalaObject插入一个$tag方法,根据2.7的库源代码中的注释,"需要"优化与案例类的构造函数匹配的模式匹配表达式." 由于名称的开头$,它当然应该被视为应用程序员"隐藏".在Scala 2.8中,它完全是空的,所以我猜它是为了向后兼容.
$tag
$
Ran*_*ulz 7
方法调度不会将类继承结构链接起来寻找实现.编译器为每个类构造一个net方法调度表,以反映其net覆盖/继承方法沿袭.这是静态解决所有打字的优点之一.
归档时间:
15 年,11 月 前
查看次数:
1588 次
最近记录:
14 年,5 月 前