使用从ruby中的方法返回的哈希在一行中分配多个变量

ed1*_*d1t 9 ruby hash ruby-on-rails

我有一个返回哈希映射的方法{ :name => "Test", :desc => "Test Description }.它将永远返回:name:description.

如何使用返回的哈希分配2个变量.

我可以这样做,但它会调用该方法两次:

@name, @desc = get_name_desc_map[:name], get_name_desc_map[:desc] 
Run Code Online (Sandbox Code Playgroud)

我只想调用一次方法.

Aru*_*hit 22

使用Ruby的并行赋值非常简单:

@name, @desc = get_name_desc_map.values
Run Code Online (Sandbox Code Playgroud)

其他方式是(如果您不知道原始哈希中键的顺序):

@name, @desc = get_name_desc_map.values_at(:name, :desc)
Run Code Online (Sandbox Code Playgroud)

Hash#values_atHash#values.