本文簡要介紹ruby語言中 Module.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 Module.attr_accessor用法及代碼示例
- Ruby Module.method_removed用法及代碼示例
- Ruby Module.private用法及代碼示例
- Ruby Module.deprecate_constant用法及代碼示例
- Ruby Module.instance_method用法及代碼示例
- Ruby Module.class_variables用法及代碼示例
- Ruby Module.included_modules用法及代碼示例
- Ruby Module.singleton_class?用法及代碼示例
- Ruby Module.module_exec用法及代碼示例
- Ruby Module.included用法及代碼示例
- Ruby Module.include?用法及代碼示例
- Ruby Module.ruby2_keywords用法及代碼示例
- Ruby Module.module_eval用法及代碼示例
- Ruby Module.extend_object用法及代碼示例
- Ruby Module.class_exec用法及代碼示例
- Ruby Module.autoload用法及代碼示例
- Ruby Module.ancestors用法及代碼示例
- Ruby Module.class_variable_get用法及代碼示例
- Ruby Module.class_variable_defined?用法及代碼示例
- Ruby Module.method_defined?用法及代碼示例
- Ruby Module.new用法及代碼示例
- Ruby Module.const_missing用法及代碼示例
- Ruby Module.instance_methods用法及代碼示例
- Ruby Module.autoload?用法及代碼示例
- Ruby Module.used_modules用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Module.obj ==。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
