【发布时间】:2013-02-14 20:23:15
【问题描述】:
我试图将方法的第一个参数设置为可选,后跟任意数量的参数。例如:
def dothis(value=0, *args)
我遇到的问题是这似乎实际上不可能?当我调用 dothis("hey", "how are you", "good") 时,我希望它会将值设置为默认值 0,但实际上它只是在生成 value="hey"。有什么方法可以完成这种行为吗?
【问题讨论】:
-
投反对票的原因...?
-
你传递了第一个参数
"hey",它被分配给value。因此,默认值无效。它有什么问题? -
我想要实现的是保留 value=0 并能够认识到“嘿”是 args 的开始,而不是 value。这是因为我正在调用一个函数,其中大约 90% 的时间值为 0。但每隔一段时间,它就必须是一个。这就是我希望将其用作默认参数的原因。
-
Ruby 如何知道您传递的第一个参数应该是
value还是args的第一个元素?你认为 Ruby 能读懂你的想法吗? -
这就是问题的重点......是否有其他方法可以实现这种行为,或者是否不可能。我为冒犯你而道歉..不需要敌对。
标签: ruby parameters arguments optional-parameters