本文简要介绍ruby语言中 BasicObject.equal?
的用法。
用法
equal?(other) → true or false
eql?(other) → true or false
别名:==
相等 — 在 Object
级别,仅当 obj
和 other
是同一对象时, ==
才返回 true
。通常,在后代类中重写此方法以提供特定于类的含义。
与 ==
不同, equal?
方法永远不应被子类覆盖,因为它用于确定对象身份(即 a.equal?(b)
当且仅当 a
与 b
是相同的对象):
obj = "a"
other = obj.dup
obj == other #=> true
obj.equal? other #=> false
obj.equal? obj #=> true
情商?如果 obj
和 other
引用相同的哈希键,则方法返回 true
。 Hash
使用它来测试成员是否相等。对于 eql?返回 true
,两个对象的哈希值必须相等。那么任何覆盖 eql 的子类?还应该适当地覆盖散列。
对于类 Object
的对象,eql?与 ==
同义。子类通常通过别名 eql?到他们重写的 ==
方法,但也有例外。例如, Numeric
类型跨 ==
执行类型转换,但不跨 eql? 执行类型转换,因此:
1 == 1.0 #=> true
1.eql? 1.0 #=> false
相关用法
- Ruby BasicObject.instance_eval用法及代码示例
- Ruby BasicObject.obj ==用法及代码示例
- Ruby BasicObject.method_missing用法及代码示例
- Ruby BasicObject.singleton_method_undefined用法及代码示例
- Ruby BasicObject.send用法及代码示例
- Ruby BasicObject.instance_exec用法及代码示例
- Ruby BasicObject.singleton_method_added用法及代码示例
- Ruby BasicObject.singleton_method_removed用法及代码示例
- Ruby BasicObject.__id__用法及代码示例
- Ruby BasicObject类用法及代码示例
- Ruby BasicSocket.send用法及代码示例
- Ruby BasicSocket.remote_address用法及代码示例
- Ruby BasicSocket.recv用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup =用法及代码示例
- Ruby BasicSocket.connect_address用法及代码示例
- Ruby BasicSocket.recv_nonblock用法及代码示例
- Ruby BasicSocket.recvmsg用法及代码示例
- Ruby BasicSocket.getsockopt用法及代码示例
- Ruby BasicSocket.getpeereid用法及代码示例
- Ruby BasicSocket.local_address用法及代码示例
- Ruby BasicSocket.shutdown用法及代码示例
- Ruby BasicSocket.close_read用法及代码示例
- Ruby BasicSocket.getpeername用法及代码示例
- Ruby BasicSocket.getsockname用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 BasicObject.equal?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。