जावा में, ==
समानता का सबसे मजबूत प्रकार है (पॉइंटर समानता): a == b
हमेशा a.equals(b)
का तात्पर्य है। हालांकि, रूबी में, ==
.equals?
की तुलना में कमजोर है:रुबी में == क्या करता है?
ruby-1.9.2-rc2 > 17 == 17.0
=> true
ruby-1.9.2-rc2 > 17.equal?(17.0)
=> false
तो, मैं कहाँ ==
के बारे में अधिक सीख सकते हैं? जब मैं दो वस्तुओं की तुलना करता हूं तो मुझे किस प्रकार की जांच की उम्मीद करनी चाहिए?
==
तुलना जाँच करता है कि दो मान बराबर
eql?
जांच करता है कि दो मान समान और एक ही प्रकार के
equal?
जांच करता है कि दो हैं:
ऐसा लगता है कि वे eql के लिए बेहतर विधि नाम चुन सकते थे? और बराबर? –
सीएलआईएसपी खराब है: 'eq',' eql', 'बराबर',' बराबर ', और '='। बेहतर नामित ऑपरेटर जैसे 'स्ट्रिंग-बराबर' और 'पेड़-बराबर' हैं। –
ठीक है, इसलिए मुझे दो वस्तुओं की तुलना करने के लिए कभी भी '==' का उपयोग नहीं करना चाहिए? लेकिन रुबी में भी '5' एक वस्तु है ... तो तुलना करने के लिए' ==' का उपयोग करना सुरक्षित क्यों है? स्ट्रिंग्स और संख्या, निश्चित रूप से। सरणी के बारे में क्या? हैश? –