Clojure स्रोत कोड से, lang/LispReader.java
:
static private Object interpretToken(String s) throws Exception{
if(s.equals("nil"))
{
return null;
}
lang/RT.java
से:
static public void print(Object x, Writer w) throws Exception{
{
...
if(x == null)
w.write("nil");
तो nil
अंतर्निहित मंच के null
के लिए Clojure के प्रतिनिधित्व है। nil
क्लोजर के लिए जावा स्रोत में कहीं और नहीं दिखाता है। nil
और null
के बीच एकमात्र अंतर यह है कि एक क्लोजर है और दूसरा जावा है, लेकिन वे अनिवार्य रूप से उपनाम हैं, जो क्लोजर से जावा से क्लोजर तक जाने पर पाठक और प्रिंटर द्वारा आवश्यक रूप से पीछे और पीछे परिवर्तित होते हैं।
हाँ, nil
NullPointerException
एस का कारण बन सकता है। किसी भी जावा विधि को nil
पर कॉल करने का प्रयास करें, आपको एक एनपीई मिलेगा, उदा।
(.tostring nil)
क्लोजर स्रोत कोड इस तरह की चीजों की बात करते समय पढ़ने के लिए बहुत आसान है, इसे एक नज़र दें।
स्रोत
2009-03-28 03:58:43
आवश्यक नहीं है। :-) मेरे पास ट्रेसबैक में जावा क्लास भी है। स्रोत कोड में इसे ट्रैक करने के लिए –