6

それらの違いは何ですか?Java のバックグラウンドから来て、<=> は Java の equals() と同じように見えますが、== は直接参照比較用です。これは正しいですか?

4

3 に答える 3

14

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

クラスのメソッドを定義する<=>と、他の比較演算子もすべて定義されます ( ==<>など)。

于 2011-07-24T20:28:21.647 に答える
3

私は自分自身を宣伝しようとしているわけではありませんが、Ruby の比較演算子と等値演算子に関する完全な長さのチュートリアルを書きました: 「Ruby Basics – Equality operator in Ruby」

そこには、<=>、==、=== を含むすべての等値演算子の違い (およびハッシュ メソッドの実装を含む、それらの実装の意味) が表示されます。

于 2011-07-24T20:33:07.783 に答える
2

==は Java のequalsに似ていますが、<=>は に似てcompareToいます。==2 つのオブジェクトを比較し、それらが等しいかどうかを返します。a <=> b2 つのオブジェクトを比較し、大きい場合は 1 a、同じ-1場合bは 0、大きい場合は 0 を返します。

于 2011-07-24T20:31:10.413 に答える