私はPragmaticProgrammersの「ProgrammingRuby」の本を読んでいて、インスタンス変数に直接割り当てるのではなく、クラス内でsetterメソッドを呼び出すことができるかどうか疑問に思っていました。
class BookInStock
attr_reader :isbn, :price
def initialize (isbn, price)
@isbn = isbn
@price = Float(price)
end
def price_in_cents
Integer(price*100 + 0.5)
end
def price_in_cents=(cents)
@price = cents/100.0
end
def price=(dollars)
price = dollars if dollars > 0
end
end
この場合、価格がマイナスにならないようにセッターを使用しています。私が知りたいのは、price_in_centsセッター内から価格セッターを呼び出すことができるかどうかです。これにより、価格がプラスになるように追加のコードを記述する必要がなくなります。
前もって感謝します