在haxe中获取编译目标语言

qua*_*ant 5 haxe

我知道,我可以做点什么

public static function getTarget():String {
    #if flash
    return "Flash";
    #elseif java
    return "Java";
    //... some more elseif clauses ...
    #end
}
Run Code Online (Sandbox Code Playgroud)

为了检测haxe中的目标语言(请参阅http://old.haxe.org/doc/snip/gettarget).然而,每当社区添加新的目标编程语言(好吧,这不是那么频繁)时 - 我需要添加另一个elseif子句以"支持/检测"该语言......

所以我想知道,如果有某种预定义的宏/函数,它将目标语言作为字符串返回:

trace("This is a " + getTargetLanguage() + " program!");
Run Code Online (Sandbox Code Playgroud)

Gam*_*a11 7

我不认为这样的事情存在.

为了确保getTarget()在添加新目标时没有静默地中断(并且你正在编译它),你可以在这种情况下抛出编译器错误:

public static function getTarget():String {
    #if flash
    return "Flash";
    #elseif java
    return "Java";
    //... some more elseif clauses ...
    #else
    #error "Missing target name"
    #end
}
Run Code Online (Sandbox Code Playgroud)