それらの違いは何ですか?Java のバックグラウンドから来て、<=> は Java の equals() と同じように見えますが、== は直接参照比較用です。これは正しいですか?
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 <=> b
2 つのオブジェクトを比較し、大きい場合は 1 a
、同じ-1
場合b
は 0、大きい場合は 0 を返します。
于 2011-07-24T20:31:10.413 に答える