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