ali_agha نشر 26 سبتمبر 2015 أرسل تقرير نشر 26 سبتمبر 2015 أريد أن أعرف الفرق بين == و === و eql? و equal? في لغة الروبي فهل هم نفس الشيء أم لكل واحدة منهم شيء يميزه عن البقية ؟ اقتباس
0 هشام رزق الله نشر 26 سبتمبر 2015 أرسل تقرير نشر 26 سبتمبر 2015 هنالك فرق بين هؤلاء الأربعة فـ == و === تقريبا لديهم نفس الوظيفة فهم يقومون بالتحقق من المساواة كما في المثال التالي:"test" == "test" #=> true "test" === "test" #=> true لكن الفرق أن === تقوم بمساواة الحالة أي أنها تتأكد من الحالة الأولى للمتغير كما في المثال التالي:String === "test" #=> true String == "test" #=> falseأما eql? فهي تقوم بالتحقق من القيم بين كائنين أي أن هل للكائن الأولى نفس قيمة الثاني أم لا وهي في الغالب تستخدم مع الهاشات (Hash) كما في المثال التالي:class Equ attr_accessor :val alias_method :initialize, :val= def hash() self.val % 2 end def eql?(other) self.hash == other.hash end end h = {Equ.new(3) => 3, Equ.new(8) => 8, Equ.new(15) => 15} #3 entries, but 2 are :eql? h.size # => 2 h[Equ.new(27)] # => 15وفي النهاية تستخدم equal? للتحقق من الكائن أي أن في المثال التالي هل أن a و b يشيران لنفس الكائن أم لا:a = b = '5' a.equal?(b) # => true للمزيد من المعلومات أنصحك بقراءة هذا المقال. اقتباس
السؤال
ali_agha
أريد أن أعرف الفرق بين == و === و eql? و equal? في لغة الروبي فهل هم نفس الشيء أم لكل واحدة منهم شيء يميزه عن البقية ؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.