簡體   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