上級 › coerce未実装のクラスと数値を演算すると TypeError になる › パターン4
coerce未実装のクラスと数値を演算すると TypeError になる
自作クラスのインスタンスを 数値 + 自作オブジェクト の順で演算すると、Integer側の+が呼ばれます。
1 class Volume 2 attr_reader :ml 3 def initialize(ml) 4 @ml = ml 5 end 6 def +(other) 7 Volume.new(ml + other.ml) 8 end 9 end 10 11 total = ______________________________ ^ 12 puts total.ml
main.rb:11:in `+': Volume can't be coerced into Integer (TypeError)
from main.rb:11:in `<main>'
空欄を埋めて実行を通す
演算の左側のオブジェクトが優先されるというRubyの規則を知らないと、この順序依存のエラーは謎に見えます。
次の問題