Macros 用于创建函数变体的Haxe宏
我需要创建一些简单函数的编译时变体 这个有宏吗Macros 用于创建函数变体的Haxe宏,macros,haxe,Macros,Haxe,我需要创建一些简单函数的编译时变体 这个有宏吗 function foo_$X() { //complicated stuff do($X); //more complicated stuff } 其中,$X只是已知集合中的一些常量值,为了便于论证,可以说[“a”、“b”、“c”] 在这个简单的示例中,我希望在编译时获得以下结果: function foo_a() { //complicated stuff do("a"); //more complicated st
function foo_$X()
{
//complicated stuff
do($X);
//more complicated stuff
}
其中,$X只是已知集合中的一些常量值,为了便于论证,可以说[“a”、“b”、“c”]
在这个简单的示例中,我希望在编译时获得以下结果:
function foo_a()
{
//complicated stuff
do("a");
//more complicated stuff
}
function foo_b()
{
//complicated stuff
do("b");
//more complicated stuff
}
function foo_c()
{
//complicated stuff
do("c");
//more complicated stuff
}
没有用于此的内置宏。然而,制作一个非常简单 这是建筑类型手册: 在您的情况下,您可能希望使用一些编译时元来标记您的方法,然后在构建类时,找到用元标记的方法,并将您编写的变体添加到类字段数组中。通过具体化,变体方法本身的组成非常简单,不需要任何复杂的AST操作