gpt4 book ai didi

ruby - 在 Ruby 中,如何在不重复代码的情况下使用默认参数或指定参数调用方法?

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:39 25 4
gpt4 key购买 nike

假设我有一个 ruby​​ 方法:

def blah(foo=17)
...
end

在代码中,我想用特定参数“blah(a)”调用 blah 或使用其默认参数“blah()”调用 blah 有没有办法在不指定方法名称两次的情况下做到这一点?我试图避免:

if a.nil?
blah()
else
blah(a)
end

因为它让代码看起来比实际更复杂。我能想到的最好的(没有测试)是:

args=[]
args << a unless a.nil?
a.send :blah, args

最佳答案

我只是尝试了几种方法,但没有找到任何方法,但如果您发现自己经常这样做,我想知道以这种方式使用默认参数的好处。试试这个:

def blah(foo=nil)
foo ||= 17
puts foo
end

blah()
a = nil
blah(a)
a = 20
blah(a)

这将输出:

17
17
20

关于ruby - 在 Ruby 中,如何在不重复代码的情况下使用默认参数或指定参数调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248956/

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