我正在努力理解下面的代码。initialize方法中参数后面的冒号是什么意思?account:etc.我知道在变量名前有冒号意味着它是一个符号,不能像变量那样改变它的值。但是在变量名后有冒号意味着什么呢?谢谢
class Purchaser
attr_accessor :consumable, :account, :amount, :reason
def initialize(consumable:, account:, amount:, reason:)
@consumable = consumable
@account = account
@amount = amount
@reason = reason
end
def make_purchase
if purchase.update(account: account, amount: amount, reason: reason) && decrease_stock
return true
else
return false
end
1条答案
按热度按时间r1zhe5dt1#
当调用该函数/构造函数时,您不需要遵循顺序,您可以通过提及variable关键字来更改顺序。因此,我们可以避免混淆,而不是盲目地记住参数顺序。
例如。
有关详细信息,请参阅使用关键字参数提高清晰度https://www.rubyguides.com/2018/06/rubys-method-arguments/部分