2017-11-26 11 views
8

में संकलन के दौरान संकलन दिनांक तक पहुंचें, मैं सोच रहा था कि बाहरी जानकारी तक पहुंचना संभव है - जैसे संकलन के दौरान वर्तमान दिनांक।हक्स

यह तो कुछ इस तरह करना संभव होगा:

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

मैं में संकलन बल्ला/श/फ़ाइल बनाने के भी इस जानकारी तक पहुँचने और फिर इसे संकलक के पास, के बारे में सोचा। (कुछ इसी तरह करने के लिए "डी"।) हालांकि Haxe संकलक की तरह एक तर्क का समर्थन नहीं लगता है:

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

तो यह है कि मैं बाद में चर तारीख की सामग्री का उपयोग कर सकते हैं ...

उत्तर

10

यह मैक्रोज़ के साथ किया जा सकता है (संकलन समय पर कोड निष्पादित)।

आपकी तिथि उदाहरण कुकबुक, here में शामिल है। आप मैक्रोज़ या 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}; 
    } 
} 

समय संकलन समय पर गणना की जाएगी।

संबंधित मुद्दे