November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcielibyśmy stworzyć hasz, w którym z pojedynczym kluczem można będzie skojarzyć więcej niż jedną wartość.
Tworzymy hasz, w którym nieistniejącemu kluczowi przypisywana będzie (dynamicznie) wartość domyślna w postaci pustej tablicy. Potem można już dołączać (za pomocą operatora <<) kolejne wartości do tablic skojarzonych z poszczególnymi kluczami:
hash = Hash.new { |hash, key| hash[key] = [] }
raw_data = [ [1, 'a'], [1, 'b'], [1, 'c'],
[2, 'a'], [2, ['b', 'c']],
[3, 'c'] ]
raw_data.each { |x,y| hash[x] << y }
hash
# => {1=>["a", "b", "c"], 2=>["a", ["b", "c"]], 3=>["c"]}
Jeden klucz może być mapowany tylko w jedną wartość, lecz wartość ta może być ...