質問
彼らの違いは何ですか? Javaの背景から来ると、それは私には<=>がJavaのEquals()と同じように見えますが、==は直接参照比較のためです。これは正しいですか?
解決
==
2つのオブジェクトが等しい場合にのみ測定しますが、 <=>
最初のオブジェクトが小さい場合は-1、等しい場合は0、最初のオブジェクトが大きい場合は1を返す必要があります。
あなたが定義する場合 <=>
クラスの方法では、他のすべての比較演算子も定義されています(==
, <
, >
, 、 等々)。
他のヒント
私が自分自身を宣伝しようとしていないとは言えませんが、Rubyの比較と平等オペレーターについての全長のチュートリアルを書きました。 「Ruby Basics - Rubyの平等オペレーター」
そこには、<=>、==、===(およびハッシュメソッドの実装を含む実装の意味)を含むすべての平等演算子の違いを見ることができます。
==
Javaのようなものです equals
, 、 その間 <=>
のようなものです compareTo
. ==
2つのオブジェクトを比較し、それらが同等であるかどうかを返します。 a <=> b
2つのオブジェクトを比較し、1を返します a
大きい、0が同じ場合は0 -1
もしも b
大きいです。
所属していません StackOverflow