पर वैकल्पिक तर्क जोड़ना मैं क्लोजर टाइम मैक्रो में एक विकल्प "संदेश" विशेषता जोड़ने की कोशिश कर रहा हूं। असल में मैं समय के आउटपुट में एक वैकल्पिक कस्टम संदेश जोड़ना चाहता हूं। मैं अपने कार्यक्रम में एक बाधा खोजने की कोशिश कर रहा हूं और समय के आउटपुट से जुड़े कुछ वर्णनात्मक संदेश बहुत उपयोगी होंगे।मैक्रो
;optional argument
(defmacro time
"Evaluates expr and prints the time it took. Returns the value of
expr."
{:added "1.0"}
[expr & msg]
`(let [start# (. System (nanoTime))
ret# ~expr]
(prn (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start#)) 1000000.0) " msecs. " (first ~msg)))
ret#))
और
(defmacro time
"Evaluates expr and prints the time it took. Returns the value of
expr."
{:added "1.0"}
([expr] (time expr ""))
([expr msg]
`(let [start# (. System (nanoTime))
ret# ~expr]
(prn (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start#)) 1000000.0) " msecs. " ~msg))
ret#)))
दोनों फेंक अपवाद:
मैं निम्नलिखित की कोशिश की है। मैं यह काम कैसे पूरा कर सकता हूं?
मैं मूल संस्करण का उपयोग किया गया है, लेकिन इस मामले के लिए एक डीबग संदेश वास्तव में मेरे लिए उपयोगी होगा। क्या ऐसा करने के लिए इससे अच्छा तरीका है? शायद कुछ प्रकार के रैपर मैक्रो? क्या मूल संस्करण केवल एक अभिव्यक्ति को स्वीकार नहीं करता है? – erikcw
@erikcw हाँ आप सही हैं मेरे खराब कोर संस्करण भी एक तर्क स्वीकार करता है। एक वैकल्पिक तर्क के साथ एक संस्करण भी जोड़ा –