Sobes.tech
Intern

Wat is een hash (HASH) in Ruby?

sobes.tech AI

Antwoord van AI

Hash (Hash) in Ruby is een geordende collectie van "sleutel-waarde" paren, waarbij elke unieke sleutel gekoppeld is aan een specifieke waarde. De sleutels zijn meestal symbolen (Symbol) of strings (String), maar kunnen elk object zijn dat de methoden eql? en hash implementeert.

Kenmerken van een hash:

  • Volgorde: Sinds Ruby 1.9 behouden hashes de volgorde van invoer.
  • Toegang via sleutel: Toegang tot waarden gebeurt snel via de bijbehorende sleutel.
  • Dynamische grootte: Hashes kunnen groeien of krimpen naarmate er elementen worden toegevoegd of verwijderd.
  • Unieke sleutels: Elke sleutel is uniek binnen een hash.

Voorbeelden van het maken van hashes:

# Gebruik van literal
persoon = { "naam" => "Alice", "leeftijd" => 30 }

# Gebruik van symbolen als sleutels (meest gebruikelijk en efficiënt)
instellingen = { :thema => "donker", :taal => "ru" }

# Notatie in de stijl van sleutel-waarde (Ruby 1.9+)
config = { host: "localhost", poort: 8080 }

# Met de Hash.new constructor
lege_hash = Hash.new

Belangrijkste operaties met hashes:

Operatie Voorbeeld Beschrijving
Toegang tot waarde persoon["naam"] Geeft de waarde voor de sleutel "naam" terug
Toevoegen/wijzigen persoon["stad"] = "New York" Voegt een paar toe of wijzigt de waarde voor de sleutel
Verwijderen persoon.delete("leeftijd") Verwijdert het paar met de sleutel "leeftijd"
Grootte persoon.size of persoon.length Geeft het aantal paren in de hash terug
Sleutelcontrole persoon.key?("naam") Controleert of de sleutel in de hash bestaat
Waardecontrole persoon.value?(30) Controleert of de waarde in de hash bestaat
Iteratie `persoon.each { sleutel, waarde
Sleutels persoon.keys Geeft een array van alle sleutels
Waarden persoon.values Geeft een array van alle waarden

Voorbeeld van gebruik:

gebruiker_data = {
  naam: "Boris",
  leeftijd: 45,
  stad: "Moskou"
}

# Toegang tot gegevens
puts gebruiker_data[:naam]   # => Boris

# Toevoegen van een nieuw veld
gebruiker_data[:baan] = "Ontwikkelaar"

# Wijzigen van de waarde
gebruiker_data[:leeftijd] = 46

# Verwijderen van een veld
gebruiker_data.delete(:stad)

# Over het hash itereren
gebruiker_data.each do |sleutel, waarde|
  puts "#{sleutel}: #{waarde}"
end