質問

彼らの違いは何ですか? Javaの背景から来ると、それは私には<=>がJavaのEquals()と同じように見えますが、==は直接参照比較のためです。これは正しいですか?

役に立ちましたか?

解決

== 2つのオブジェクトが等しい場合にのみ測定しますが、 <=> 最初のオブジェクトが小さい場合は-1、等しい場合は0、最初のオブジェクトが大きい場合は1を返す必要があります。

あなたが定義する場合 <=> クラスの方法では、他のすべての比較演算子も定義されています(==, <, >, 、 等々)。

他のヒント

私が自分自身を宣伝しようとしていないとは言えませんが、Rubyの比較と平等オペレーターについての全長のチュートリアルを書きました。 「Ruby Basics - Rubyの平等オペレーター」

そこには、<=>、==、===(およびハッシュメソッドの実装を含む実装の意味)を含むすべての平等演算子の違いを見ることができます。

== Javaのようなものです equals, 、 その間 <=> のようなものです compareTo. == 2つのオブジェクトを比較し、それらが同等であるかどうかを返します。 a <=> b 2つのオブジェクトを比較し、1を返します a 大きい、0が同じ場合は0 -1 もしも b 大きいです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top