请原谅这个有趣的标题,我用它来比喻“zip bomb”。是否可以创建一个 Scala 源文件,该文件在编译时会生成大量类文件(或非常大的单个类文件)?有什么办法可以让类文件的大小比源文件的大小线性增长得更快?
请您参考如下方法:
特化本质上是特化类型参数数量的指数。
class Huge[@specialized A, @specialized B, @specialized C](
val a: A, val b: B, val c: C
) {} // 730 files, 2.9 MB
class Gigantic[@specialized A, @specialized B, @specialized C, @specialized D](
val a: A, val b: B, val c: C, val d: D
) {} // 6562 files, 26 MB
模式匹配还可能涉及复杂情况下的大量代码重复(尽管我发现很难准确预测何时会发生这种情况)。