Variabili e conversioni in Ruby
Un concetto molto importante in programmazione, non soltanto per Ruby, è quello relativo alle variabili. Queste sono dei veri e propri contenitori di informazioni che permettono di conservare nella memoria di un terminale un determinato valore attraverso una semplice operazione di associazione.
Una variabile è quindi un sequenza di caratteri (lettere e numeri) che punta ad un determinato valore; richiamando una variabile sarà possbile quindi richiamare anche il valore che essa contiene.
Un caso importante è quello relativo alle variabili locali, esse non sono altro che delle semplici parole che devono avere il carattere iniziale minuscolo o un underscore ("_") e possono contenere anche delle cifre.
Se l'interprete del linguaggio vede una parola chiave impostata come una variabile locale la può interpretare come una keyword, come una chiamata ad un metodo o appunto come una variabile locale.
Le keywords in Ruby sono delle vere e proprie parole riservate che non possono essere utilizzate come nomi per le variabili in quanto sono destinate a definire un metodo o un altro costrutto.
"for" e "while" richiamano dei cicli, "if" ed "else" delle condizioni, dato che questi costrutti sono molto utilizzati in Ruby si è preferito riservarli in modo che non potessero essere confusi con i nomi delle variabili.
Ruby presenta 38 reserved words la cui lista potrà essere consultata all'inizio di questa pagina.
Semplici istruzioni come "puts" o "print", viste in precedenza, sono delle chiamate per i metodi, ma possono essere anche parte di una variabile locale; in questo caso dovrà essere l'interprete di Ruby a identificarle nel modo corretto:
- nel caso in cui alla destra del termine sia presente un segno uguale ("=") avremo una variabile locale e verrà effettuata l'assegnazione di un valore
- se invece il termine è elencato tra le keywords di Ruby, questo non potrà essere considerato come una chiamata ad un metodo
# assegnazione di un valore numerico var1 = 5 # assegnazione di un valore stringa var2 = '5'La variabile "var1" contiene un valore numerico, la variabile "var2" contiene invece un valore stringa; i due valori non possono quindi essere sommati perche rapprentano due tipologie di dato differenti.
Vediamo ora un secondo esempio:
# assegnazione di valori a due variabili var1 = 5 var2 = 5 puts var1 + var2In questo caso l'operazione svolta è invece possibile in quanto le due variabili sono compatibili per tipo di dato che rappresentano; l'operazione di addizione viene svolta utilizzando le variabili e non direttamente i valori che essere rappresentano, con indubbi vataggi nella manipolazione di valori complessi (ad una varibile potrebbe per esempio corrispondere un valore composto da molte cifre o da molti caratteri alfanumerici).
I tipi di dato non sono però degli ostacoli invalicabili, è possibile infatti operare delle conversioni tra i dati grazie a dei semplici operatori di conversione; facciamo un esempio:
# conversione di variabili var1 = 5 var2 = '5' puts var1.to_s + var2"var1.to_s" permette di convertire il valore di "var1" (che è un numerico intero) in una stringa; il risultato dell'operazione sarà quindi la stringa "25"; se to_s consente la conversione di interi in stringhe, per effettuare l'operazione contraria abbiamo a disposizione l'operatore to_i così come abbiamo to_f per la conversione di interi in float.
Da notare che la conversione del valore non determina una riassegnazione, la variabile conserverà quindi il tipo di dato assegnato tramite l'operatore "=".







