Scala禁止分配值类

J P*_*lar 5 scala value-class

根据价值类的文件,它们可能在许多情况下分配:

分配摘要

值类被视为另一种类型.

值类被分配给数组.

进行运行时类型测试,例如模式匹配.

无论如何说,如果出现这些情况,会抛出编译错误吗?

Ale*_*nov 1

没有任何内置的东西(据我所知)。

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

或者,您应该能够使用编译器插件执行相同的操作(不幸的是,我找到的文档相当旧),但难度稍大一些。