gpt4 book ai didi

ruby - 更改默认的 Ruby 参数

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:15 27 4
gpt4 key购买 nike

我想更改传递给 Ruby 函数的默认参数。例如,而不是每次都写

[1,2,3].do_stuff(:option => ' my option ')

我想修改默认值以便我可以写

[1,2,3].do_stuff

更改默认参数的最简单、最干净、最像 Ruby 的方法是什么?

最佳答案

>> [1, 2, 3].do_stuff
=> Result I get
>> [1, 2, 3].do_stuff :an_option => a_value
=> Result I really want, but don't want to specify the argument

我喜欢为此使用super。它允许我们向方法添加一些功能,而不仅仅是更改默认参数:

class Array
def do_stuff(options = {})
# Verify if caller has not passed the option
options[:argument_i_want_to_change] = default_value_i_want unless options.has_key? :argument_i_want_to_change
# call super
super
end
end

结果:

>> [1, 2, 3].do_stuff
=> Result that I really want

更新:删除了 reverse_merge!依赖。 (现在正在寻找使用 []= 方法的更好替代方法)

关于ruby - 更改默认的 Ruby 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com