私はこのクラスを持っています:
class Account
attr_accessor :balance
def initialize(balance)
@balance = balance
end
def credit(amount)
@balance += amount
end
def debit(amount)
@balance -= amount
end
end
次に、たとえば、プログラムの後半で次のようにします。
bank_account = Account.new(200)
bank_account.debit(100)
「-=」演算子を使用してdebitメソッドを呼び出すと(上記のクラスに示されているように)、プログラムは次のメッセージで失敗します。
bank2.rb:14:in `debit': undefined method `-' for "200":String (NoMethodError)
from bank2.rb:52:in `<main>'
しかし、マイナス記号を削除して@balance = amountにすると、機能します。明らかに減算したいのですが、なぜそれが機能しないのか理解できません。インスタンス変数で数学を行うことはできませんか?