Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Corso su Ruby: hash
Scritto da Satish Talim il 24-07-2007 ore 09:22
Intel Parallel Studio XE
Gli hash, conosciuti come array associativi, mappe o dizionari, sono simili agli array in quanto sono una collezione di indici che referenziano oggetti. Comunque, mentre si indicizzano gli array ad interi, gli hash si possono indicizzare con qualsiasi tipo di oggetto: stringhe, espressioni regolari e così via. Quando si salva un valore in un hash, si inviano due oggetti: l'indice, normalmente chiamato key, e il valore. Di conseguenza si può richiamare il valore, indicizzando l'hash attraverso la stessa chiave. I valori in un hash possono essere oggetti di qualsiasi tipo. L'esempio p040myhash.rb seguente usa hash di caratteri: una lista di chiavi a cui corrispondono coppie di valori tra virgolette.
  1. <span style="font-size:1.0em">
  2. h = {'dog' => 'canine', 'cat' => 'feline', 'donkey' => 'asinine', 12 => 'dodecine'}
  3. puts h.length  # 3
  4. puts h   # 'canine'
  5. puts h
  6. puts h[12]</span>

L'output è:
  1. <span style="font-size:1.0em">
  2. >ruby p040myhash.rb
  3. 4
  4. canine
  5. catfeline12dodecinedonkeyasininedogcanine
  6. dodecine
  7. >Exit code: 0</span>

Comparati con gli array, gli hash hanno un vantaggio: essi usano qualsiasi oggetto come un indice. Comunque, i loro elementi non sono ordinati, così che non è facile usare un hash come uno stack o una coda. Gli hash hanno un valore di default, che è ritornato quando un'attesa è fatta per accedere a chiavi che non esistono nell'hash. Per default questo valore è nil. La classe Hash ha molti metodi, un elenco è presente on line.

In alternativa all'uso delle stringhe, si può usare un simbolo. Ecco un esempio, p041symbolhash.rb:
  1. <span style="font-size:1.0em">people = Hash.new
  2. people[:nickname] = 'IndianGuru'
  3. people[:language] = 'Marathi'
  4. people[:lastname] = 'Talim'
  5. puts people[:lastname] # Talim</span>

"Traduzione e adattamento a cura di Francesca Beatrice Cice. La versione originale del tutorial di Satish Talim può essere trovata su rubylearning.com"
Precedente: Vista e i processi protetti
Successiva: Django, framework per pythonisti
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.26 secondi.