當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby BasicObject.obj ==用法及代碼示例

本文簡要介紹ruby語言中 BasicObject.obj == 的用法。

用法

obj == other → true or false
eql?(other) → true or false
也別名為:equal?

相等 — 在 Object 級別,僅當 objother 是同一對象時, == 才返回 true。通常,在後代類中重寫此方法以提供特定於類的含義。

== 不同, equal? 方法永遠不應被子類覆蓋,因為它用於確定對象身份(即 a.equal?(b) 當且僅當 ab 是相同的對象):

obj = "a"
other = obj.dup

obj == other      #=> true
obj.equal? other  #=> false
obj.equal? obj    #=> true

情商?如果 objother 引用相同的哈希鍵,則方法返回 true Hash 使用它來測試成員是否相等。對於 eql?返回 true ,兩個對象的哈希值必須相等。那麽任何覆蓋 eql 的子類?還應該適當地覆蓋散列。

對於類 Object 的對象,eql?與 == 同義。子類通常通過別名 eql?到他們重寫的 == 方法,但也有例外。例如, Numeric 類型跨 == 執行類型轉換,但不跨 eql? 執行類型轉換,因此:

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

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 BasicObject.obj ==。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。