我正在编写一些宏,这是示例代码
macro public static function test(object:Expr,name:Expr):Expr{
#if debug
return macro if ($object.get($name) == true) {$object.scan();$object.submit();return;};
#else
return macro trace("debug mode only");
#end
}
随着我的宏越来越长复杂,我认为除了用分号连接语句之外,必须有另一种方法来编写多行宏。
关于编写多行(约50-100生成行)宏的任何建议?
答案 0 :(得分:2)
从this示例,我发现你可以返回一个表达式块,而不仅仅是一行。只需在大括号内添加语句并返回即可。您也可以使用宏来return a class。
macro public static function test(object:Expr, name:Expr):Expr {
#if debug
return macro
if ($object.get($name) == true) {
$object.scan();
$object.submit();
return;
}
#else
return macro {
trace("not working!")
trace("compile with -Ddebug");
}
#end
}