@:keep 在 Haxe 中是什么意思?

What does @:keep mean in Haxe?

我是 Haxe 的新手,正在玩 OpenFL Starling Sample 代码 - 我注意到在 class 声明之前有一个 @:keep 元数据。这是什么意思?

@:keep class TouchScene extends Scene {
    // ...
}

Haxe 允许 classes 和函数上的元数据标签。

@:keep 是一个元数据标记,它指示编译器的 dead code elimination 功能不要删除 class 或函数,即使它认为 class 或函数是未使用。

还有很多其他的built-in metadata tags

仅供参考,对于高级用户,您可以创建模式并指定您自己的元数据标签(并使用宏解析它们)。例如,我的 lazy-props library 就是这样做的。