Array
Potete creare un array elencando alcuni elementi
all'interno di parentesi quadre ([])
separandoli con delle virgole. Gli array di ruby possono
contenere diversi tipi di oggetto.
ruby> ary = [1, 2, "3"] [1, 2, "3"]
Gli array possono essere concatenati e ripetuti come avviene per le stringhe.
ruby> ary + ["foo" , "bar"] [1, 2, "3" , "foo" , "bar"] ruby> ary * 2 [1, 2, "3" , 1, 2, "3"]
Possiamo usare degli indici numerici per riferirci a qualunque parte dell'array.
ruby> ary[0] 1 ruby> ary[0,2] [1, 2] ruby> ary[0..1] [1, 2] ruby> ary[-2] 2 ruby> ary[-2,2] [2, "3"] ruby> ary[-2..-1] [2, "3"]
(Gli indici negativi indicano la distanza dalla fine dell'array, invece che dall'inizio.)
Gli array possono essere convertiti in e da stringhe, usando
join e split rispettivamente:
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1" , "2" , "3"]
In un array associativo gli elementi sono identificati non da
un indice numerico sequenziale, ma attraverso le
chiavi che possono avere qualsiasi tipo di
valore. Un simile array è talvolta chiamato
hash oppure dictionary; nel mondo di ruby
preferiamo il termine hash. Un hash può
essere costruito indicando una coppia di elementi
all'interno di parentesi graffe ({}).
E' possibile usare una chiave per trovare qualcosa
all'interno di un hash, allo stesso modo in cui si usa un
indice per trovare qualcosa in un array.
ruby> h = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}
ruby> h[1]
2
ruby> h["2"]
"4"
ruby> h[5]
nil
ruby> h[5] = 10 # aggiunta di un valore
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1 # cancellazione di un valore
2
ruby> h[1]
nil
ruby> h
{5=>10, "2"=>"4"}