Code Fix

中級Comparable を include しても <=> が無いと比較演算子は使えない › パターン4

Comparable を include しても <=> が無いと比較演算子は使えない

Comparableモジュールをincludeするだけでは <、>、between? などのメソッドは動きません。

 1  class Distance
 2    include Comparable
 3    attr_reader :meters
 4    def initialize(meters)
 5      @meters = meters
 6    end
 7  
 8  __________________________________________________
                             ^
 9  end
10  
11  puts Distance.new(5) < Distance.new(10)
main.rb:11:in `<': comparison of Distance with Distance failed (ArgumentError) from main.rb:11:in `<main>'

空欄を埋めて実行を通す

広告
広告スロット(未設定)

Comparable を include しても <=> が無いと比較演算子は使えない

これらのメソッドは内部で<=>(UFO演算子)を呼び出す仕組みなので、クラス自身に<=>を定義しておく必要があります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)