本文简要介绍ruby语言中 Object.obj == 的用法。
用法
obj == other → true or false
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 引用相同的哈希键,则 eql? 方法返回 true。 Hash 使用它来测试成员是否相等。对于 eql? 返回 true 的任何一对对象,两个对象的 hash 值必须相等。因此,任何覆盖 eql? 的子类也应该适当地覆盖 hash 。
对于 Object 类的对象, eql? 与 == 是同义词。子类通常通过将 eql? 别名为其重写的 == 方法来延续这一传统,但也有例外。例如, Numeric 类型跨 == 执行类型转换,但不跨 eql? 执行类型转换,因此:
1 == 1.0 #=> true
1.eql? 1.0 #=> false
相关用法
- Ruby Object.instance_variable_get用法及代码示例
- Ruby Object.display用法及代码示例
- Ruby Object.remove_instance_variable用法及代码示例
- Ruby Object.define_singleton_method用法及代码示例
- Ruby Object.methods用法及代码示例
- Ruby Object.public_send用法及代码示例
- Ruby Object.xmp用法及代码示例
- Ruby Object.singleton_methods用法及代码示例
- Ruby Object.enum_for用法及代码示例
- Ruby Object.freeze用法及代码示例
- Ruby Object.inspect用法及代码示例
- Ruby Object.method用法及代码示例
- Ruby Object.DelegateClass用法及代码示例
- Ruby Object.instance_of?用法及代码示例
- Ruby Object.nil?用法及代码示例
- Ruby Object.instance_variable_defined?用法及代码示例
- Ruby Object.singleton_class用法及代码示例
- Ruby Object.kind_of?用法及代码示例
- Ruby Object.send用法及代码示例
- Ruby Object.itself用法及代码示例
- Ruby Object.to_enum用法及代码示例
- Ruby Object.__id__用法及代码示例
- Ruby Object.is_a?用法及代码示例
- Ruby Object.instance_variable_set用法及代码示例
- Ruby Object.extend用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Object.obj ==。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
