2011-07-24 13 views
6

उनके मतभेद क्या हैं? जावा पृष्ठभूमि से आ रहा है, ऐसा लगता है कि मुझे < => जावा के बराबर() के समान है, जबकि == प्रत्यक्ष संदर्भ तुलना के लिए है। क्या यह सही है?रुबी में <=> और == के बीच अंतर?

उत्तर

14

== केवल दो उपाय हैं यदि दो ऑब्जेक्ट बराबर हैं, जबकि <=> वापस आना चाहिए यदि पहली वस्तु छोटी है, 0 यदि वे बराबर हैं, और 1 यदि पहली वस्तु अधिक है।

आप अपने वर्ग के लिए एक <=> विधि को परिभाषित हैं, तो आप अन्य तुलना ऑपरेटर के रूप में अच्छी तरह से परिभाषित के सभी मिल जाएगा (==, <, >, और इतने पर)।

+3

आह, तो <=> जावा की तुलना() विधि की तरह है? –

+0

@devoured yep, बिल्कुल सही –

2

== जावा के equals की तरह है, जबकि <=>compareTo जैसा है। == दो वस्तुओं की तुलना करता है और यह लौटाता है कि वे बराबर हैं या नहीं। a <=> b दो ऑब्जेक्ट्स की तुलना करता है और 1 देता है यदि a बड़ा है, 0 यदि वे समान हैं और -1 यदि b बड़ा है।

3

नहीं कह सकते हैं मैं अपने आप को बढ़ावा देने की कोशिश नहीं कर रहा हूँ, लेकिन मैं रूबी में तुलना और समानता ऑपरेटर के बारे में एक पूरी लंबाई ट्यूटोरियल लिखा है: "Ruby Basics – Equality operators in Ruby"

वहाँ में आप सभी समानता ऑपरेटरों के बीच मतभेदों को देख सकते हैं, < =>, == और === (और हैश विधि कार्यान्वयन सहित उन्हें लागू करने के प्रभाव) शामिल हैं।

+0

मैं बस उस साइट को पढ़ रहा था: पी –

संबंधित मुद्दे