प्रलेखन जवाब देता है:
=> (doc declare)
-------------------------
clojure.core/declare
([& names])
Macro
defs the supplied var names with no bindings, useful for making forward declarations.
Looking at the implementation, यह स्पष्ट है कि declare
def
के संदर्भ में परिभाषित किया गया है और सिंटैक्स चीनी का एक छोटा सा प्रदान करता है। तो कार्यात्मक रूप से, वे काफी समान हैं।
declare
का लाभ बाद के पाठक के लिए इरादा दिखाना है। (declare x y z)
मैं उन प्रतीकों में से एक आगे घोषणा बनाने के लिए, क्योंकि मैक्रो useful for making forward declarations.
(def x) (def y) (def z)
का मतलब है मैं इन प्रतीकों होना शामिल कर रहा हूँ है इरादा मतलब है, लेकिन आप अगर मैं उन्हें परिभाषाओं प्रदान करने के उद्देश्य से जानते हैं और करने के लिए या कि क्या मैं भूल नहीं है मैं आगे की घोषणा कर रहा हूं, या शायद कुछ और सूक्ष्म।
तो, को (def x)
पर प्राथमिकता दी जानी चाहिए, जब आप आगे की घोषणा कर रहे हैं, तो अपने कोड के भविष्य के पाठकों पर दया दिखाने के लिए।