【发布时间】:2013-10-19 23:55:20
【问题描述】:
如果我在 Ruby 中有以下方法:
def foo(arg1, arg2 = "bar")
puts arg1
puts arg2
end
有没有办法确定用户是否在方法中为arg2 传递了一个值?显然我可以将if arg2 == "bar" 添加到该方法中,但这并没有捕捉到用户自己手动传入"bar" 的情况。当然,我可以将默认值设置为任何用户都不会传入的默认值,但这样很快就会变得非常丑陋。
那里有什么优雅的东西吗?
【问题讨论】:
-
我的理解是否正确,对于您的示例,您想知道
foo是否可以确定对它的调用是foo(arg1)还是foo(arg1, "bar")? -
是的,就是这样。
标签: ruby parameters optional-parameters