我已经被困在这个Learnstreet课程上一天了。练习提示:
现在可以实现一个名为transfer的方法!它有两个参数,amount和other_account。该方法应从当前对象中提取指定的金额并将其存入other_account对象。
编辑器中的代码如下:
class BankAccount
attr_accessor :name, :balance, :address
def initialize(name, balance, address)
@name = name
@balance = balance
@address = address
end
def withdraw!(amount)
if @balance - amount > 0
@balance = @balance - amount
end
@balance
end
def deposit!(amount)
@balance += amount
end
# your code here
end
alices_account = BankAccount.new("Alice Cooper", 2500, "456 University Avenue")
bobs_account = BankAccount.new("Bob Ventura", 2100, "3500 Fox Street")
我知道你需要设置一个带def def的方法!(amount,other_account)。但是我不知道在alices_account和bobs_account之后放在底部的内容。
答案 0 :(得分:0)
你可以在其中一个对象上调用transfer!
,传入另一个对象,例如,
bobs_account.transfer!(500, alices_account)
您只是在实例上调用方法,例如"foo".size
或[1, 2, 3].each
等。唯一的区别是您创建了您正在调用的方法
答案 1 :(得分:0)
我知道你需要设置一个def转移的方法!(金额,其他_帐户)。
所以基本上你必须创建BankAccount#transfer!
,从调用它的对象中提取一些钱并将总和存入“其他”BankAccount
对象。
由于您已设置BankAccount#withdraw!
和BankAccount#deposit!
,因此解决方案非常简单:
def transfer!(amount, other_account)
withdraw! amount
other_account.deposit! amount
end
但是我不知道在alices_account和bobs_account之后放在底部的内容。
练习不要求你对后者做任何事情。如果您应该做某事,您需要知道要从alices_account
转移到bobs_account
的“金钱”金额,然后继续:
# assuming x to be the amount to transfer
alices_account.transfer! x, bobs_account
或:
# assuming x to be the amount to transfer
bobs_account.transfer! x, alices_account
好的,现在。我花了一个小时才完成了那个之前的所有10个课程,这就是我发现的。在某些时候,您get to write代码的最后两行。
然后发生了一件奇怪的事情。练习生成的代码在末尾which is obviously a syntax error附近包含. To
。删除该行并添加上面提供的方法you get to pass the test。