2
我試圖使用宏一些變量聲明從這個轉換:在Haxe中,你如何讀取宏內的變量名?
function test():Void {
var someComp:Component = __SOME_MACRO__();
// Or...
@getCompById var someComp:Component;
// Or even simpler...
getCompById(someComp, Component); //do some fancy macro magic...
// Also, if it's not possible/easy with a variable ...
getCompById("someComp", Component); //with a string of the variable name.
}
...這樣的:
function test() {
var someComp:Component = cast container.getCompById("someComp");
}
我傾向於更多地接近第三個選項(短語法,相同的結果)。
但我不知道如何編寫宏(如果它需要一個字符串作爲參數?表達式?)以及如何正確地返回它作爲宏表達式。
這是(碎)的代碼,我已經得到了迄今:
macro static function getCompById(someVar:Expr, typeVar:Expr) {
return macro {
var someVar:typeVar = cast container.getCompById("someVar");
};
}
任何想法?
嗯是有可能我用,如果不同版本HAXE的我沒有'haxe.macro.Tools'?似乎並不存在於軟件包中(即在3.1.3中) – bigp 2014-11-17 14:00:26