Dicționarul (Hash) stochează perechi cheie-valoare. Începând cu Ruby 1.9+, dacă cheia este un simbol, sintaxa veche cu săgeată :nume => "Valoare" a fost simplificată prin plasarea caracterului două puncte după cheie: { nume: "Valoare" }.
Navigare sigură prin structuri complexe cu dig și fetch
# Declarare hash modern cu chei simbol:
utilizator = {
id: 101,
nume: "Elena Vasilescu",
rol: :manager,
contact: {
email: "elena@exemplu.ro",
adresa: {
oras: "Brașov",
cod_postal: "500123"
}
}
}
# 1. Navigare sigură în adâncime cu .dig (nu aruncă NoMethodError dacă o cheie lipsește):
oras = utilizator.dig(:contact, :adresa, :oras)
puts "Oraș: #{oras}" # "Brașov"
tara = utilizator.dig(:contact, :adresa, :tara)
puts "Țară: #{tara.inspect}" # nil (fără crash!)
# 2. Citire cu valoare fallback obligatorie prin .fetch:
telefon = utilizator.fetch(:telefon, "Număr nespecificat")
puts "Telefon: #{telefon}"
# 3. Transformare de valori cu .transform_values:
preturi_lei = { mere: 5, pere: 8, struguri: 12 }
preturi_euro = preturi_lei.transform_values { |lei| (lei / 5.0).round(2) }
puts "Prețuri calculate în EUR: #{preturi_euro.inspect}"
Întrebări & Exemple de Cod:
Dicționare (Hashes) în Ruby: Sintaxa Modernă cu Simboluri, fetch și digAi o nelămurire despre utilizarea comenzii
Dicționare (Hashes) în Ruby: Sintaxa Modernă cu Simboluri, fetch și digsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.