在 Haxe 编译期间访问编译日期

Access the compilation date during compilation in Haxe

我想知道是否可以访问外部信息 - 例如编译期间的当前日期。

然后就可以做这样的事情了:

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;
    }
}

我考虑过在编译 bat/sh/make 文件中访问此信息,然后也将其传递给编译器。 (类似于“-D”。)但是 Haxe 编译器似乎不支持这样的参数:

haxe --main MyInfo --js test.js -SOMEARG date=$(date)

这样我以后就可以使用可变日期的内容了...

这可以用宏来完成(代码在编译时执行)。

您的日期示例包含在食谱中,here。 您可以找到有关宏的更多信息 in the haxe manual or in the 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};
  }
}

时间将在编译时计算。