问题标签 [universal-trait]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
235 浏览

scala - 值类、通用特征和实例化的必要性

value classes 的规范中,它说:

值类只能扩展通用特征,不能扩展自身。通用特征是扩展的特征Any,只有defs 作为成员,并且不进行初始化。通用特征允许对值类的方法进行基本继承,但它们会产生分配的开销。例如

第一个问题

现在,我认为这意味着以下(可能)不需要实例化:

我对么?

第二个问题

而且我认为这是否需要实例化是有机会的:

在概率的平衡上,我也认为不需要实例化——我正确吗?

编辑

我没有考虑print()示例中的确切实现:

假设我使用了以下内容:

这些会导致实例化吗?

0 投票
0 回答
439 浏览

scala - Scala trait 扩展 AnyVal 的目的?

有时我在 Scala/Scala.js 中看到trait Foo extends AnyVal { ... }——这里的意义和目的是extends AnyVal什么?

我知道value classes,并且它们不能扩展扩展的特征AnyRef,因此 usingextends AnyVal对于该用例是有意义的。

但是如果我们不使用值类来扩展这样的特征呢?AnyVal特征自行扩展是否有任何性能优势?