繁体   English   中英

Haxe Macro创建函数变体

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM