将哈希列表转换为方法的参数

1 ruby arrays hash ruby-on-rails sinatra

我有基于哈希的参数.

method1(:test=>[:arg1, :arg2 => :something])
Run Code Online (Sandbox Code Playgroud)

我需要以:test下面的格式将参数作为参数传递给另一个方法

来自A:

[:arg1, {:arg2=>:something}] 
Run Code Online (Sandbox Code Playgroud)

到B:

method2 :arg1, :arg2=>:something
Run Code Online (Sandbox Code Playgroud)

我如何从A到B?

Lin*_*der 7

怎么样?

args = {:test => [:arg1, :arg2 => :something]}
method1(args)

method2(*args[:test])
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,在Ruby中,这称为splat运算符. (2认同)