Ruby <=>
(宇宙船)オペレーターとは何ですか?演算子は他の言語で実装されていますか?
@SF、人々が配列を比較するとき、それらは通常辞書式に比較することを意味します(辞書のように、つまり最初の要素が異なるため[1,3,2] <[2,2,2])。まれに(Matlabのfe)の配列比較では、要素ごとの結果の配列が返されます。この場合:[-1、1、0]。
—
liori
nil要素を含む配列は、nilの前の要素が異なる場合は比較可能であり、nilを非nilと比較する必要がある場合は比較できないことに注意してください。つまり、[1、nil] <=> [2、3] => -1ですが、[1、nil] <=> [1、3] => nilです。これは基本的には最悪です。
—
クリフォードヒース
アルゴリズムの一貫性のために
—
リロール2017
[1,nil] <=> [1,3]
得られるような配列を比較する場合nil
、<=>
結果がNOT になるまで各要素を順番に比較します0
。この例では、Rubyが「より小さい」または「より大きい」を宣言する方法はありません。比較を行うことができないからです。nil
「等しくない」として扱われるべきです。データについて何かを知っていて、たとえばnil
として扱いたい0
場合、Rubyはそれを簡単にします。
[1,3,2] <=> [2,2,2]
?