я это:Ruby: вызов метода присвойте в другом классе
class Money
attr_reader :value
def initialize(init_amount = 0)
self.value = init_amount
end
def value=(new_amount)
if new_amount >= 0
@value = new_amount
else
puts "ERROR: value can't be less than 0."
end
end
def to_s
("%.2f" % @value).split(".").join(",")
end
end
И в другом классе, я называю мой объект:
load 'Money.rb'
class Transaction
attr_reader :amount
def initialize(init_amount)
@amount = Money.new(init_amount)
end
def amount=(new_amount)
@amount = new_amount # Why it doesn't work??
# Why I need to do this ?
# @amount.value=(new_amount)
end
end
Почему @amount = NEW_AMOUNT не называют значение метода =() класса Money?
Большое спасибо за помощь!
Вы хотите, чтобы иметь возможность переопределить оператор присваивания. Вы не можете сделать это в Ruby – Rado