我有一个带有默认值的参数的方法。我需要知道该值是来自用户还是默认值。用户也可以发送默认值。我怎么知道这些值来自哪里?

最佳答案

您可以使用 Nobu Nakada 在 2004 年提出的技巧:

def some_method( a=(implicit_value=true; 1) )
    puts "a=#{a}; was set #{ implicit_value ? :im : :ex }plicitly"
end

> some_method
a=1; was set implicitly

> some_method 1
a=1; was set explicitly

> some_method 2
a=2; was set explicitly

关于ruby - 我如何知 Prop 有默认值的参数是否有明确的参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13018258/

10-12 05:10