Project

General

Profile

Actions

Bug #15857

closed

<=> の右辺が <=> を実装していない場合の振る舞い

Added by shuujii (Shuji KOBAYASHI) almost 5 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
[ruby-core:92694]

Description

<=> の右辺が <=> を実装していないとき、nil が返却される場合と例外が発生する場合があり一貫性がないように思えるのですが、意図的でしょうか。

  0 <=> 0i               #=> NoMethodError (undefined method `<=>' for (0+0i):Complex)
  0 <=> BasicObject.new  #=> nil
 :a <=> 0i               #=> nil
"a" <=> 0i               #=> NoMethodError (undefined method `<=>' for (0+0i):Complex)

なお、0 <=> 0i に関しては、0 == 0itrue になるのでそれとも一貫性がないように思えるのもやや気になりました。


Files

complex-real-spaceship.patch (8.75 KB) complex-real-spaceship.patch jeremyevans0 (Jeremy Evans), 06/05/2019 04:53 AM
complex-real-spaceship-v2.patch (8.08 KB) complex-real-spaceship-v2.patch jeremyevans0 (Jeremy Evans), 06/06/2019 02:32 AM
complex-real-spaceship-v3.patch (7.79 KB) complex-real-spaceship-v3.patch jeremyevans0 (Jeremy Evans), 06/11/2019 05:14 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0