Sobes.tech
Intern

Kas ir hash (HASH) Ruby?

sobes.tech AI

Atbilde no AI

Hash (Hash) Ruby ir organizēta pāru "atslēga-vērtība" kolekcija, kur katrs unikāls atslēga ir saistīta ar noteiktu vērtību. Atslēgas parasti ir simboli (Symbol) vai virknes (String), bet tās var būt jebkādi objekti, kuriem ir īstenotas metodes eql? un hash.

Hash īpašības:

  • Kārtība: No Ruby 1.9 versijas hash'iem ir atbalsts elementu ievietošanas secībai.
  • Piekļuve pēc atslēgas: Pieeja vērtībām ir ātra pēc atbilstošās atslēgas.
  • Dinamiska izmērs: Hash'iem var paplašināties vai samazināties, pievienojot vai noņemot elementus.
  • Unikālas atslēgas: Katrs atslēga ir unikāla vienā hash'ā.

Hash izveides piemēri:

# Izmantojot literālo formu
person = { "name" => "Alice", "age" => 30 }

# Izmantojot simbolus kā atslēgas (biežāk un efektīvāk)
settings = { :theme => "dark", :language => "ru" }

# Notācija pēc vārdu stila (Key-Value Pair Shorthand), no Ruby 1.9
config = { host: "localhost", port: 8080 }

# Ar Hash.new konstruktoru
empty_hash = Hash.new

Galvenās operācijas ar hash:

Operācija Piemērs Apraksts
Pieeja vērtībai person["name"] Atgriež vērtību pēc atslēgas "name"
Pievienošana/izmaiņa person["city"] = "New York" Pievieno vai maina vērtību pēc atslēgas
Dzēšana person.delete("age") Dzēš pāri pēc atslēgas "age"
Izmērs person.size vai person.length Atgriež pāru skaitu hash'ā
Atslēgas pārbaude person.key?("name") Pārbauda, vai atslēga ir hash'ā
Vērtības pārbaude person.value?(30) Pārbauda, vai vērtība ir hash'ā
Iterācija `person.each { key, value
Atslēgu atgriešana person.keys Atgriež visus atslēgu masīvā
Vērtību atgriešana person.values Atgriež visus vērtību masīvā

Piemērs lietošanai:

user_data = {
  name: "Борис",
  age: 45,
  city: "Москва"
}

# Pieeja datiem
puts user_data[:name]   # => Борис

# Jauna lauka pievienošana
user_data[:job] = "Разработчик"

# Vērtības maiņa
user_data[:age] = 46

# Lauka dzēšana
user_data.delete(:city)

# Hash iterācija
user_data.each do |key, value|
  puts "#{key}: #{value}"
end