2009-02-16 12 views

उत्तर

41

इसका कारण यह है नहीं के बराबर बनाए जाने पर भाषा initializes एक वस्तु है, और उस वस्तु की आईडी हमेशा 4.

होने के लिए क्यों के बारे में अधिक जानकारी के लिए होता है आईडी 4 होने लगती है, this ब्लॉग पोस्ट देखें।

+30

मैं रूबी फेसबुक प्रोग्रामर हूं और ऐसा होता है कि 4 फेसबुक पर मार्क जुकरबर्ग आईडी भी है। यह मुझे कभी अजीब बग तक ले जाता है ... ;-) –

+0

http://rxr.whitequark.org/mri/source/include/ruby/ruby.h?v=2.0.0-p481#421 – thomthom

+3

यह नहीं है मुझे अपने "8" $ आईआरबी आईआरबी (मुख्य) के लिए सच: 001: 0> nil.object_id => 8 आईआरबी (मुख्य): 002: 0> माणिक 2.0.0p247 (2013-06-27 संशोधन 41,674) [x86_64-darwin13.3.0] – CantGetANick

4

ऐसा इसलिए होता है क्योंकि प्रत्येक ऑब्जेक्ट की आईडी को किसी भी तरह से सी रूबी दुभाषिया में प्रदर्शित किया जाना था। संख्याओं को मैप किया गया (संख्या * 2) +1, सच्चाई 0 मिली, झूठीपन 2 मिली और शून्य 4 बचे थे। यह सिर्फ एक अजीब कार्यान्वयन मुद्दा या रिसाव अमूर्त है। जब तक आप रूबी दुभाषिया लिखना नहीं चाहते हैं तब तक आपको इसकी चिंता नहीं करनी चाहिए।

11

मुझे हमेशा लगता है कि यह एक अच्छा ईस्टर अंडे था: जापान 4 में मृत्यु की संख्या है।

0

आप आईआरबी में यह कोशिश कर रहे हैं आप 4

irb 
>> NIL.id 
(irb):7: warning: Object#id will be deprecated; use Object#object_id 
=> 4 

माणिक जापानी लोग नहीं के बराबर तरीकों पर सेट में हो रही है फोन वापस करती 4 यह की भाषा मानक वे के रूप में "खतरनाक" या "मौत"

सेट है कि 4
संबंधित मुद्दे