Scala 禁止分配值类

标签 scala value-class

根据值(value)类别的文档,它们可能会在多种情况下分配:

Allocation Summary

a value class is treated as another type.

a value class is assigned to an array.

doing runtime type tests, such as pattern matching.


有没有办法说,如果出现这些情况,会抛出编译错误?

最佳答案

没有任何内置(AFAIK)。

您可以编写一个 SBT 插件来检查 .class compile 之后的文件任务完成(使用 BCEL、ASM 等库)并且如果它找到任何值类构造函数调用则失败。

或者,您应该可以用 compiler plugin 做同样的事情。 (不幸的是,我能找到的文档已经很旧了)有点困难。

关于Scala 禁止分配值类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37206953/

相关文章:

scala - Scala 中的匹配 - 性能?

scala - 为什么Scala有SeqView而没有SetView?

scala - 匹配 Akka 中的值类

Scala 没有推断出适当的方法

scala - Spray 将 Scala 值传递给资源

Scala值类,用例

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

Scala - 如何使用反射 api 获取字段的 'type'

java - 我应该使用什么数据结构来在恒定时间内从一对变化的值到java中的对象进行查找?