Come Ruby vede le stringhe
Nell'immagine riportata nel capitolo precedente è stata mostrata una schermata della shell di Fxri; questo programma è estremamente semplice da utilizzare: sulla sinistra è possibile richiamare comandi e costrutti con un pratico motore di ricerca (oltre 13 mila voci); sulla destra in alto avremo una descrizione della voce che abbiamo cercato; sulla destra in basso abbiamo invece la vera e propria Shell in cui digitare le istruzioni in Ruby.
Ora portiamo il puntatore del mouse sulla Shell e digitiamo la semplice istruzione:
puts 'Hello, world!'Con un semplice invio avremo in output la stringa:
Hello, world!"Smontiamo" il nostro primo scriptino in Ruby:
- puts è un'istruzione per la stampa di un argomento passato come parametro (come echo e print in PHP)
- gli apici ('...'), detti anche quotes, come nella sistassi tipica di altri linguaggi (ad esempio Perl) delimitano un determinato parametro per indicare che esso è una stringa
- Al termine dell'istruzione non vi è un delimitatore di chiusura; non abbiamo per esempio il ";" che chiude un'istruzione in altri linguaggi. Si tratta di una delle tante semplificazioni che Ruby mette a disposizione dello sviluppatore
Una stringa contenuta tra doppi apici consente di utilizzare i caratteri di escape preceduti da un backslash ("\") e l'interpretazione di espressioni in cui è presente il costrutto #{} per l'interpolazione che vedremo a breve.
Una stringa tra apici singoli non genera interpretazioni quindi la stringa verrà stampata esattamente nella forma in cui viene passata all'esecutore.
"puts" non è l'unica istruzione per la stampa di Ruby; analogamente, ma con alcune caratteristiche distintive, possono essere utilizzati anche p e print.
"print" viene considerato un "puts di basso livello" (senza accezioni qualitative); "p" permette il dump delle variabili e il loro quoting.
All'interno di un listato in Ruby è possibile inserire dei commenti, cioè "annotazioni" dello sviluppatore che non sono destinate a partecipare all'esecuzione del programma nè ad essere stampate.
Per introdurre dei commenti nel codice è possibile utilizzare due metodi: porre il simbolo dell'asterisco all'inizio di un commento (per i commenti su riga singola) o scrivere più righe di commento all'interno dei deilimitatori =begin e =end:
# puts aggiunge \n se necessario: puts 'Hello World!' puts 'Come va?' =begin print non inserisce newline nelle stringhe di output questo deve essere indicato dallo sviluppatore ad esempio: =end print "Hello World\n" print "Ciao"Utilizzando Fxri per stampare la vostra prima stringa avrete sicuramente notato nella Shell la presenza di due voci: irb(main) e nil.
IRB (Interactive Ruby) è un REPL (Read-Eval-Print Loop), cioè un interprete che lavora in modalità interattiva consentendo di tenere traccia dei risultati delle proprie istruzioni; un REPL prevede 4 fasi:
- read (lettura di un'istruzione)
- eval (esecuzione)
- print (stampa del risultato)
- loop (iterazione)







