本文簡要介紹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?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。