Utilizzo dei metodi gets e chomp e distinzioni tra variabili
Osserviamo questo semplice listato:
# utilizzo del metodo gets nome = gets Carla puts = 'Ciao ' + nome + ' come stai?'l'output prodotto dalla sua esecuzione sarà il seguente:
Ciao Carla come stai?gets è un metodo a cui può essere associato un qualsiasi valore digitato dopo la pressione del tasto [Invio]; nel nostro esempio abbiamo associato alla variabile "nome" il parametro "Carla" passato a "gets", nell'istruzione di stampa quindi ciò che otteniamo è una stringa in cui la variabile viene interpretata restituendo il valore associato al metodo.
Da notare come in questo caso il segno "+" non svolga naturalmente il ruolo di operatore di addizione ma quello di concatenazione tra variabili e stringhe; il fatto che la seconda stringa, cioè "come stai" venga scritta a capo non è casuale, "gets" aggiunge infatti una newline ("\n") al valore della variabile che memorizza, conseguentemente quello che dovrà essere stampato dopo sarà compreso in una seconda riga.
Questa particolarità pone alcuni problemi di formattazione, del resto perchè dividere l'output in più righe se l'utente non lo desidera? Ruby per questo motivo mette a disposizione l'apposito metodo chomp che impedisce la creazione di una seconda riga dopo la stampa della variabile.
Facciamo un esempio:
# utilizzo di gets e chomp nome = gets.chomp Carolina puts = 'Buonasera, ' + nome + ' è occupata?'Dall'esecuzione del nostro secondo esempio otterremo l'output:
Buonasera, Carolina è occupata?sicuramente più gradevole del primo a livello di formattazione.
Nel corso di questa trattazione abbiamo utilizzato più volte il termine variabili e ne abbiamo analizzato l'utilizzo; a questo punto è bene introdurre alcune distinzioni tra tipologie di variabili per non ingenerare confusioni nei prossimi esempi.
In linea generale possiamo dire che le variabili si distinguono sulla base del loro nome:
- il nome di una variabile locale è formato da un carattere minuscolo seguito dagli altri caratteri, come ad esempio "_abc", "leggi_il_file" etc.
- per una variabile di istanza di un'oggetto avremo invece la "@" come carattere iniziale, questa sarà seguita da un altro carattere che potrà essere maiuscolo o minuscolo, come per esempio "@var", "@_" e "@Var";
- nel caso delle variabili di classe, cioè dichiarate nel contesto di una classe, il loro nome inizierà con due "@@", seguite da un carattere maiuscolo o minuscolo opzionalmente seguito altri caratteri, come per esempio "@@var", "@@_" oppure "@@var"
- le variabili globali, quelle valide per tutta l'applicazione, hanno un nome che inizia con il segno di dollaro ("$") seguito da caratteri diversi come per esempio: "$var", "$VAR" e "$-var"
In Ruby una costante si riferisce ad un oggetto e viene creata con un'operazione di assegnazione di valore, il nome di una costante inizia con una lettera maiuscola seguita da altri caratteri, ad es:
#assegnazione di un valore ad una costante: A_CONST = 100







