ruby – 在一个采用多个可选参数的方法中,如何指定除第一个之外的任何参数?

前端之家收集整理的这篇文章主要介绍了ruby – 在一个采用多个可选参数的方法中,如何指定除第一个之外的任何参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的方法
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参数传递给函数(有时你可能想要)

原文链接:https://www.f2er.com/ruby/269772.html

猜你在找的Ruby相关文章