【发布时间】:2015-09-05 16:08:06
【问题描述】:
我定义了一个方法:
def method(one: 1, two: 2)
[one, two]
end
当我这样称呼它时:
method one: 'one', three: 'three'
我明白了:
ArgumentError: unknown keyword: three
我不想从哈希中一一提取所需的键或排除额外的键。除了定义这样的方法之外,有没有办法规避这种行为:
def method(one: 1, two: 2, **other)
[one, two, other]
end
【问题讨论】:
-
为什么不能像
method(one: 1, two: 2, **other)那样做? -
这些
**other参数好像是多余的 -
是否要引用方法体中的其他参数?同时您不想在方法配置文件中引用它?如果是这样,那么您尝试做的事情没有意义。你怎么能引用一个特定的参数而不在方法定义中接收呢?
-
其中一个原因是不关心参数的顺序,但这样做还有其他要求
标签: ruby ruby-2.0 keyword-argument