我正在创建一个可以创建和更新信用卡的简单CC类。为此,我创建了cc_bal {}作为实例对象,以便更新尊重信用卡。哈希是为了保存和更新一个人及其cc上的金额。我最终得到的输出只是创建的原始数量,而不是更新的数量
下面是代码:
class CC
def initialize(cc_name, cc_bal = {}, open_cc = false)
@cc_name = cc_name
@cc_bal = cc_bal
@open_cc = open_cc
end
def create(initAmount, person)
if initAmount > 0
@open_cc = true
@cc_bal[:person]=initAmount
puts "congrats #{person} on opening your new #{@cc_name} CC! with $#{@cc_bal[:person]}"
else
puts "sorry not enough funds"
end
end
def update(amount, person)
if @open_cc == true
@cc_bal[:person] + amount
else
puts "sorry no account created, #{person}"
end
puts "#{person} has CC balance of #{@cc_bal[:person]}"
end
end
#chase = Bank.new("JP Morgan Chase")
#wells_fargo = Bank.new("Wells Fargo")
me = Person.new("Shehzan", 500)
friend1 = Person.new("John", 1000)
#chase.open_account(me)
#chase.open_account(friend1)
#wells_fargo.open_account(me)
#wells_fargo.open_account(friend1)
#chase.deposit(me, 200)
#chase.deposit(friend1, 300)
#chase.withdraw(me, 50)
#chase.transfer(me, wells_fargo, 100)
#chase.deposit(me, 5000)
#chase.withdraw(me, 5000)
#puts chase.total_cash_in_bank
#puts wells_fargo.total_cash_in_bank
credit_card = CC.new("Visa")
credit_card.create(10,me)
credit_card.update(50,me)
credit_card.create(20,friend1)
credit_card.update(40,friend1)
请忽略已注释掉的函数调用。
知道为什么CC没有更新?
答案 0 :(得分:1)
if @open_cc == true
@cc_bal[:person] + amount
else
您增加了金额,但未在任何地方设置新值。它应该是
if @open_cc == true
@cc_bal[:person] += amount
else
请注意。代码需要一些严肃的重构和清理。