问:我和视频一起关注,但尝试运行print_register方法的代码时遇到错误。
我得到的错误是:bank_account.rb:38:在print_register': undefined method每一个中代表nil:NilClass(NoMethodError)
我的循环到底是什么问题?我完全不知所措,我一直在反复检查着我可能在哪里犯了一个错误,但据我所知,它与视频Oo中的代码相同...
我的代码:
class BankAccount
attr_reader :name def初始化(名称)@name =名称@transactions = [] add_transaction (“期初余额” ,0 )end def贷项(描述,金额)add_transaction (描述,金额)end def借方(description ,金额)add_transaction (说明,
-量)
端DEF add_transaction (描述,量)#push散列到阵列W / 2键:描述&量)@transactions 。推(描述:描述,金额:金额)结束def余额余额= 0 @交易。每个做| 交易| 余额+ =交易[ :amount ]最终收益
balance
end def to_s “名称:#{ name } ,余额:#{ sprintf (”%0.2f“ ,balance )} ”“ end def print_register放置” #{ name }的银行帐户“放置” Description \ t Amount“ @交易。每个做| 交易| 放入交易[ :description ] + “ \ t ” + sprintf
(“%0.2F” , 交易[ :量] )
端放“余额:#{ sprintf的(”0.2F“ ,平衡)} ”结束端BANK_ACCOUNT =的BankAccount 。新的(“ Jason” )bank_account 。贷方(“ Paycheck” ,100 )bank_account 。借方(“杂货店” ,40 )放置bank_account放置
“注册:”
bank_account 。print_register
答:在def print_register中,我认为您在交易后需要一个“ s”。您的变量是@transactions,带有“ s” ...