Sobes.tech
Intern

Co je to hash (HASH) v Ruby?

sobes.tech AI

Odpověď od AI

Hash v Ruby je uspořádaná kolekce párů "klíč-hodnota", kde každý unikátní klíč je spojen s určitým hodnotou. Klíče jsou obvykle symboly (Symbol) nebo řetězce (String), ale mohou být jakýmikoli objekty, pro které jsou implementovány metody eql? a hash.

Vlastnosti hashe:

  • Uspořádanost: Od verze Ruby 1.9 hashe podporují pořadí vkládání prvků.
  • Přístup podle klíče: Přístup k hodnotám je rychlý podle odpovídajícího klíče.
  • Dynamická velikost: Hashe se mohou rozšiřovat nebo zmenšovat podle přidávání nebo odstraňování prvků.
  • Nepřítomnost duplicitních klíčů: Každý klíč je unikátní v rámci jednoho hashe.

Příklady vytváření hashe:

# Použití literálu
person = { "name" => "Alice", "age" => 30 }

# Použití symbolů jako klíčů (častější a efektivnější způsob)
settings = { :theme => "dark", :language => "ru" }

# Notace ve stylu klíčových slov (Key-Value Pair Shorthand), od Ruby 1.9
config = { host: "localhost", port: 8080 }

# Pomocí konstruktoru Hash.new
empty_hash = Hash.new

Hlavní operace s hashi:

Operace Příklad Popis
Přístup k hodnotě person["name"] Vrací hodnotu podle klíče "name"
Přidání/změna person["city"] = "New York" Přidá pár nebo změní hodnotu podle klíče
Odstranění person.delete("age") Odstraňuje pár podle klíče "age"
Velikost person.size nebo person.length Vrací počet párů v hashi
Kontrola klíče person.key?("name") Kontroluje přítomnost klíče v hashi
Kontrola hodnoty person.value?(30) Kontroluje přítomnost hodnoty v hashi
Iterace `person.each { key, value
Vrácení klíčů person.keys Vrací pole všech klíčů
Vrácení hodnot person.values Vrací pole všech hodnot

Příklad použití:

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

# Přístup k datům
puts user_data[:name]   # => Борис

# Přidání nového pole
user_data[:job] = "Разработчик"

# Změna hodnoty
user_data[:age] = 46

# Odstranění pole
user_data.delete(:city)

# Iterace přes hash
user_data.each do |key, value|
  puts "#{key}: #{value}"
end