Successivo

News

Ruby tuesday: ancora costanti stringa

Michele Costabile | 7 Aprile 2009

Continuiamo con la nostra presentazione della sintassi di Ruby analizzando versioni più elaborate delle familiari dichiarazioni di stringhe tipiche dei […]

Continuiamo con la nostra presentazione della sintassi di Ruby analizzando versioni più elaborate delle familiari dichiarazioni di stringhe tipiche dei linguaggi di programmazione tradizionali.
Ruby eredita da Perl una serie di curiose notazioni per la dichiarazione di stringhe, che non aggiungono molto alla flessibilità  del linguaggio, ma hanno il pregio di essere familiari per chi proviene da Perl.
Ricordiamo che gli esempi sono provati in irb, l’interprete ruby da riga di comando che è contenuto in ogni distribuzione.
La sintassi prevede il carattere ‘%’, seguito da un carattere qualsiasi, come in questo caso:

Macintosh:~ mico$ irb
>> a = %!pin pin cavallin!
=> "pin pin cavallin"

Non è obbligatorio usare un punto esclamativo, anzi si può scegliere un carattere qualsiasi

>> a=%$un, due, tre$
=> "un, due, tre"

Proprio come in Perl si può usare la sintassi con la q, che sta per quote, cioè virgolette

>> a = %Q!ciao ciao!
=> "ciao ciao"

Si può anche scrivere

>> a = %q!ciao ciao!
=> "ciao ciao"

C’è una differenza: la Q maiuscola sta per doppi apici, la q minuscola sta per apici semplici.
Ecco la differenza:

>> print %Q!ciao\nciao!
ciao
ciao=> nil
>> print %q!ciao\nciao!
ciao\nciao=> nil

Nel primo caso abbiamo l’interpretazione delle sequenze di escape, come \n (newline). Nel secondo caso \n è stampato letteralmente.

L’ultima variazione delle costanti stringa espresse con il segno di percentuale è l’inclusione dell’output di comandi:

a=%x!dir *.rb!