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

时间:2014-04-04 23:00:05

标签: ruby-on-rails ruby hash

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

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

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

@name, @desc = get_name_desc_map[:name], get_name_desc_map[:desc] 

我只想调用一次方法。

1 个答案:

答案 0 :(得分:21)

使用Ruby的并行分配非常简单:

@name, @desc = get_name_desc_map.values

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

@name, @desc = get_name_desc_map.values_at(:name, :desc)

Hash#values_atHash#values