我想知道是否可以访问外部信息 - 比如编译期间的当前日期.
然后可以做这样的事情:
class MyInfo {
private var buildDate:Int = --- AUTOMATICALLY INSERT THE CURRENT UNIX DATE TIME HERE ---;
public function getInfo():String { // example usage
return "This library was compiled the " + buildDate;
}
}
Run Code Online (Sandbox Code Playgroud)
我考虑在编译bat/sh/make文件中访问此信息,然后将其传递给编译器.(类似于"-D"的东西.)但是,Haxe编译器似乎不支持如下参数:
haxe --main MyInfo --js test.js -SOMEARG date=$(date)
Run Code Online (Sandbox Code Playgroud)
这样我以后就可以使用变量日期的内容......
kLa*_*abz 10
这可以通过宏(在编译时执行的代码)来完成.
您的日期示例将在此处的食谱中介绍.您可以在haxe手册或cookbook中找到有关宏的更多信息.
编辑:最小的例子:
class Test {
public static function main() {
trace(getBuildTime());
}
public static macro function getBuildTime() {
var buildTime = Math.floor(Date.now().getTime() / 1000);
return macro $v{buildTime};
}
}
Run Code Online (Sandbox Code Playgroud)
时间将在编译时计算.