美文网首页我-程序成长-解惑
Ruby中的 == 、equal?和eql?

Ruby中的 == 、equal?和eql?

作者: 就叫初九吧 | 来源:发表于2016-02-04 10:14 被阅读113次

==和equal?是在BasicObject定义的
eql?是在Object中定义的
默认情况下这个三个方法都是在对象水平进行比较,即当比较的两个对象具有相同的内存时返回true。
按照ruby文档 equal?是不应该被override的。
像Fixnum String等类对== eql?进行了overrride,所以才会有如下情况:

1 == 1.0 # => true
1.eql? 1.0 # => false
1.equal? 1.0 #=> false


"foo" == "foo" #=>true
"foo".eql? "foo" #=>true
"foo" .equal? "foo" #=>false


class Name; end
n1 = Name.new
n2 = Name.new
n1 == n2 #=> false
n1.eql? n2 #=> false
n1.equal? n2 #=>false

相关文章

  • Ruby中的 == 、equal?和eql?

    ==和equal?是在BasicObject定义的eql?是在Object中定义的默认情况下这个三个方法都是在对象...

  • ==、===、eql?以及equal?的区别

    ==判断双方的值(value)是否相等 ===通常情况与==相等,但在一些其它的情况下,也可以判断相等,比如:在R...

  • Ruby---eql?,equls?,通过comparable自

    eql? 是String中的方法,用于比较两个字符串内容是否一样equal? 是BaseObject的方法,表示两...

  • 2016.6.12

    ruby的equal是比较两个对象是否相同,而java里String类的equal方法比较两个字符串对象的值是否相...

  • java基础--集合和流

    1.Map()重写equal同时重写hashCode()方法 Object类中的equal()和==是相同的 S...

  • Java中equal和==的区别

    大家先来做个题目,以下看下自己能不能作对。 正确答案是答案是:1.true 2.false 3.true下面...

  • Java中==和equal的区别

    Java中==和equal的区别为: 1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals(...

  • Java面试题集锦02—Java语法基础

    05.Java中equal和==的区别是什么equal和"=="两者均为表示相等的意思,但是它们相等的含义却有所区...

  • Equal和==

    1.Integer 情况1: 结果: a==b falsea.equals(b) truea==c t...

  • Effective Ruby

    一、 让自己熟悉Ruby 1、理解 Ruby 中的 True 在 Ruby 中,除了 false 和 nil, 其...

网友评论

    本文标题:Ruby中的 == 、equal?和eql?

    本文链接:https://www.haomeiwen.com/subject/uiuekttx.html