我正在做一些红宝石练习。在我练习的一个解决方案中,我找到了这段代码。
def make_change(amount)
{ H:50, Q:25, D:10, N:5, P:1 }.inject({}) do |res, (k,v)|
change, amount = amount.divmod(v)
res[k] = change unless change==0
res
end
end
此方法将金额作为参数并将金币与其相等。例如:
make_change(75)
#=> {H:1, Q:1}
(50 + 25 = 75)
但我不明白change
变量的来源。变量是如何填充的?
答案 0 :(得分:1)
但是我不明白“变更”变量来自何处,变量是如何填充的?
change
在块的第一行中定义并初始化:
change, amount = amount.divmod(v)