2014-04-04 3 views
6

Ich habe eine Methode, die eine Hash-Map { :name => "Test", :desc => "Test Description } zurückgibt. Es wird immer :name und :description zurückgeben.Zuweisen mehrerer Variable in einer Zeile mit dem Hash von der Methode in Ruby zurückgegeben

Wie kann ich 2 Variablen mit dem zurückgegebenen Hash zuweisen.

ich dies tun könnte, aber es wird die Methode aufrufen zweimal:

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

Ich möchte nur einmal die Methode aufzurufen.

Antwort

13

Sehr einfach mit Rubys parallel Zuordnung:

@name, @desc = get_name_desc_map.values 

Anderer Weg ist (Wenn Sie die Reihenfolge der Schlüssel in der ursprünglichen Hash nicht kennen):

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

Hash#values_at und Hash#values .

Verwandte Themen