[英]Haxe Macro to create function variants
我需要创建一个简单函数的一些编译时变体。
这有宏吗?
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
}
没有内置宏。 然而,制作一个很简单。
这是建筑类型的手册: http : //haxe.org/manual/macro-type-building.html
在您的情况下,您可能希望使用一些编译时元标记您的方法,然后在构建类时,找到标记为meta的方法并添加您组成类字段数组的变体。 变体方法本身的组合非常简单,使用具体化并且不需要任何复杂的AST操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.