上級 › coerce未実装のクラスと数値を演算すると TypeError になる › パターン2
coerce未実装のクラスと数値を演算すると TypeError になる
自作クラスのインスタンスを 数値 + 自作オブジェクト の順で演算すると、Integer側の+が呼ばれます。
1 class Weight 2 attr_reader :grams 3 def initialize(grams) 4 @grams = grams 5 end 6 def +(other) 7 Weight.new(grams + other.grams) 8 end 9 end 10 11 total = ______________________________ ^ 12 puts total.grams
main.rb:11:in `+': Weight can't be coerced into Integer (TypeError)
from main.rb:11:in `<main>'
空欄を埋めて実行を通す
自作クラスに+を定義しても、それが呼ばれるのはレシーバが自作クラス側にある場合だけです。
次の問題