/ / TCPsocket रूबी 1.8.7 में क्यों काम करता है - रूबी, टीसीपीएसकेट

TCPsocket क्यों रूबी 1.8.7 में काम करता है - रूबी, टीसीपीएसकेट

इस कोड को चलाएं

rvm 1.8.7,1.9.3-p547 do ruby -r socket -e "puts TCPSocket == TCPsocket"

रूबी 1.8.7 पर क्यों यह सच है?

उत्तर:

जवाब के लिए 5 № 1

स्रोत पुरातत्व का एक बिट यह दिखाता है कि मूल रूप से कक्षा का नाम दिया गया था TCPsocket (एक कम मामले के साथ s)। बाद में यह था का नाम बदल गया TCPSocket (अपरकेस s), लेकिन पुराने नाम के साथ एक स्थिर स्थापित किया गया था। रूबी 1.8.7 में यह मामला था, इसलिए उस संस्करण के लिए TCPsocket तथा TCPSocket उसी वर्ग को संदर्भित किया जाता है और इसलिए बराबर की तुलना करेगा।

बाद में अभी भी मूल नाम हटा दिया गया था, केवल छोड़कर TCPSocket। 1.9 के बाद से यह मामला है, इसलिए हाल के संस्करणों का उपयोग कर TCPsocket परिणामस्वरूप एक होगा uninitialized constant त्रुटि।

क्यों, मुझे लगता है कि मैट मूल रूप से इस्तेमाल किया जाता है TCPsocket और बाद में महसूस किया कि TCPSocket एक बेहतर नाम था, लेकिन संगतता के लिए थोड़ी देर के लिए उपलब्ध पुराना नाम छोड़ दिया।