如果我在 Ruby 中有以下方法:
def foo(arg1, arg2 = "bar")
puts arg1
puts arg2
end
有没有办法确定用户是否在方法中为 arg2
传递了一个值?显然,我可以将 if arg2 == "bar"
添加到方法中,但这并没有捕捉到用户自己手动传入 "bar"
的情况。当然,我可以将默认值设置为任何用户都不会传入的内容,但这样很快就会变得非常丑陋。
那里有什么优雅的东西吗?
最佳答案
def foo(arg1, arg2 = (arg2_not_passed = true; "bar"))
puts arg1
puts arg2
puts 'arg2 was passed' unless arg2_not_passed
end
关于ruby - 如何确定是否在 Ruby 中传递了可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19472413/