小编Tas*_*tto的帖子

使用可选参数后跟一个关键字参数列表处理方法

我想传递一个可选参数(任何数据类型,甚至是哈希),然后是一个方法的关键字参数列表(可以为空).

这就是我得到的:

def my_method(subject = nil, **options)
  [subject, options]
end
Run Code Online (Sandbox Code Playgroud)

在以下情况下,方法输出符合预期:

当传递Hash作为主题而没有选项时,期望的结果是:

my_method({foo: 'foo'})
# => [{:foo=>"foo"}, {}]
Run Code Online (Sandbox Code Playgroud)

但我得到以下内容; 我没有得到正确的主题:

my_method({foo: 'foo'})
# => [nil, {:foo=>"foo"}]
Run Code Online (Sandbox Code Playgroud)

my_method(foo: 'foo')相当于my_method({foo: 'foo'})?关于如何获得理想结果的任何想法?

ruby arguments splat

5
推荐指数
1
解决办法
95
查看次数

标签 统计

arguments ×1

ruby ×1

splat ×1