1
我有一个非常奇怪的问题。 如果我们运行这个类,由于binding.pry
,执行将在方法调用中被中断。Ruby初始化奇怪的参数性能
如果我们检查receiver
的方法值为Ivo
,如预期。但是`sender'的值就是这个对象,基本上就是params的数组。
["Gerard",
"Ivo",
#<Bank:0x007fb4339ac2b8
@accounts=
[#<Account:0x007fb4339ac240 @bank=#<Bank:0x007fb4339ac2b8 ...>, @founds=0, @user="Gerard">,
#<Account:0x007fb4339ac1f0 @bank=#<Bank:0x007fb4339ac2b8 ...>, @founds=0, @user="Ivo">]>,
#<Bank:0x007fb4339ac2b8
@accounts=
[#<Account:0x007fb4339ac240 @bank=#<Bank:0x007fb4339ac2b8 ...>, @founds=0, @user="Gerard">,
#<Account:0x007fb4339ac1f0 @bank=#<Bank:0x007fb4339ac2b8 ...>, @founds=0, @user="Ivo">]>,
1200]
这是全班同学。任何解释?
require_relative './lib/bank'
class TransferAgent
def initialize(sender, receiver, sender_bank, receiver_bank, amount)
@sender = sender,
@receiver = receiver,
@sender_bank = sender_bank,
@receiver_bank = receiver_bank,
@amount = amount
end
def call
binding.pry
transfer_result = perform_transfer until transfer_result.succed?
end
private
attr_reader :sender, :receiver, :amount, :sender_bank, :receiver_bank
def perform_transfer
sender_account.transfer_money(receiver_account, amount)
end
def sender_account
@sender_account ||= sender_bank.account sender
end
def receiver_account
@receiver_account ||= receiver_bank.account receiver
end
end
bank_a = Bank.new
bank_a.create_account("Gerard")
bank_a.create_account("Ivo")
TransferAgent.new("Gerard", "Ivo", bank_a, bank_a, 1200).call