Successivo

News

Ruby tuesday: gli array

Michele Costabile | 22 Aprile 2009

Torniamo sulla sintassi di Ruby esplorando il modo di esprimere costanti di tipo vettoriale. Come in altri linguaggi, un array […]

Torniamo sulla sintassi di Ruby esplorando il modo di esprimere costanti di tipo vettoriale.

Come in altri linguaggi, un array Ruby è semplicemente una lista di costanti fra parentesi quadre. Ecco un esempio


irb(main):003:0> [1, 2, 3]
=> [1, 2, 3]

Gli array possono essere nidificati, per esempio:


irb(main):004:0> [1, 2, [3, 4]]
=> [1, 2, [3, 4]]

Si possono mischiare elementi di diverso tipo

irb(main):005:0> ["a", "b", "c", 5]
=> ["a", "b", "c", 5]

E esiste una sintassi, mutuata da Perl, per semplificare la creazione di array di stringhe usando la notazione %w

C:\ruby\bin>irb
irb(main):001:0> %w(ciao ciao)
=> ["ciao", "ciao"]
irb(main):002:0> %w(questo è un array di stringhe)
=> ["questo", "\212", "un", "array", "di", "stringhe"]
irb(main):003:0> irb(main):005:0> ["a", "b", "c", 5]

Ecco qualche altro esempio

C:\ruby\bin>irb
irb(main):001:0> %w(uno '' tre)
=> ["uno", "''", "tre"]
irb(main):002:0> %W(uno '' tre)
=> ["uno", "''", "tre"]
irb(main):003:0> %W(uno ' tre)
=> ["uno", "'", "tre"]
irb(main):004:0> %W(uno " tre)
=> ["uno", "\"", "tre"]
irb(main):005:0> %w(uno " tre)
=> ["uno", "\"", "tre"]

Indubbiamente la notazione è molto comoda, anche se l’uso più ovvio, cioè la creazione di liste di messaggi di errore o di configurazione, richiede la citazione letterale degli spazi con il backslash, come nell’esempio che segue, in cui inseriamo diverse righe di testo, si noti come la seconda riga viene interpretata

irb(main):010:0> errori = %w(manca\ questo
irb(main):011:0] manca quello)
=> ["manca questo", "manca", "quello"]