ruby – 在一个采用多个可选参数的方法中,如何指定除第一个之外
发布时间:2020-12-16 19:01:43 所属栏目:百科 来源:网络整理
导读:我有这样的方法: def foo(fruit='apple',cut="sliced",topping="ice cream") # some logic hereend 如何调用它,我只覆盖顶部参数,但使用其他参数的默认值,如下所示 foo('','','hot fudge') 当然这不能按预期工作,但我想只为第三个可选参数提供一个值,并让前
我有这样的方法:
def foo(fruit='apple',cut="sliced",topping="ice cream") # some logic here end 如何调用它,我只覆盖顶部参数,但使用其他参数的默认值,如下所示 foo('','','hot fudge') 当然这不能按预期工作,但我想只为第三个可选参数提供一个值,并让前两个参数保持默认值.我知道如何用哈希做这个,但是使用上面的语法是他们的快捷方式吗? 解决方法
您无法使用此语法在ruby中执行此操作.我会为此推荐哈希语法.
def foo(args={}) args[:fruit] ||= 'apple' args[:cut] ||= 'sliced' args[:topping] ||= 'ice cream' # some logic here end foo(:topping => 'hot fudge') 您也可以使用位置参数执行此操作: def foo(fruit=nil,cut=nil,topping=nil) fruit ||= 'apple' cut ||= 'sliced' topping ||= 'ice cream' # some logic here end foo(nil,nil,'hot fudge') 请记住,这两种技术都会阻止您将实际的nil参数传递给函数(有时你可能想要) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |