3.  Variabili e Assegnamenti

 

Finora ogni volta che abbiamo chiamato puts per stampare a console una stringa o un numero, la cosa che abbiamo stampato è sparita. Quello che intendo dire è che se volessimo stampare qualcosa due volte, dovremmo scriverla due volte:

puts '...puoi dirlo ancora...'
puts '...puoi dirlo ancora...'
...puoi dirlo ancora...
...puoi dirlo ancora...

Sarebbe bello se si potesse digitarlo solo una volta e quindi bloccarlo... salvarlo da qualche parte. Bene, ovviamente possiamo farlo, altrimenti non ti avrei messo la pulce nell'orecchio!

Per salvare la stringa nella memoria del tuo computer, dobbiamo assegnare un nome alla stringa. I programmatori spesso si riferiscono a questo processo come a un assegnamento, e chiamano i nomi assegnati agli oggetti salvati variabili. L'uguale, utilizzato in questa circostanza, si chiama anche operatore di assegnamento perché assegna alla variabile alla sua sinistra l'oggetto alla sua destra. Una variabile può essere qualsiasi sequenza di lettere e numeri, ma il primo carattere dev'essere una lettera minuscola. Proviamo a riscrivere l'ultimo programma, ma questa volta diamo alla stringa il nome miaStringa (sebbene io la possa chiamare anche str o laMiaPiccolaStringa o conan_il_barbaro).

miaStringa = '...puoi dirlo ancora...'
puts miaStringa
puts miaStringa
...puoi dirlo ancora...
...puoi dirlo ancora...

Ogni volta che provi a fare qualcosa a miaStringa, il programma quel qualcosa lo fa invece a '...puoi dirlo ancora...'. Puoi pesare che la variabile miaStringa "punta" alla stringa '...puoi dirlo ancora...'. Ora un esempio leggermente più interessante:

# encoding: utf-8
nome = 'Patrizia Rossana Jessica Mildred Oppenheimer'
puts 'Mi chiamo ' + nome + '.'
puts 'Wow!  ' + nome + ' è un nome davvero lungo!'
Mi chiamo Patrizia Rossana Jessica Mildred Oppenheimer.
Wow!  Patrizia Rossana Jessica Mildred Oppenheimer è un nome davvero lungo!

Inoltre, esattamente come possiamo assegnare un oggetto a una variabile, possiamo anche riassegnare un oggetto differente alla stessa variabile. (Ed è per questo che si chiamano variabili: perché ciò a cui puntano può variare!)

compositore = 'Mozart'
puts compositore + ' era "er mejo", dei suoi tempi.'

compositore = 'Beethoven'
puts 'Ma io preferisco ' + compositore + ', personalmente.'
Mozart era "er mejo", dei sui tempi.
Ma io preferisco beethoven, personalmente.

Ovviamente, le variabili possono puntare a ogni tipo di oggetto, non solo a delle stringhe:

var = 'solo un\'altra ' + 'stringa'
puts var

var = 5 * (1+2)
puts var
solo un'altra stringa
15

In effetti, le variabili possono puntare a qualsiasi cosa... tranne ad altre variabili. Che cosa succede se ci proviamo?

var1 = 8
var2 = var1
puts var1
puts var2

puts ''

var1 = 'otto'
puts var1
puts var2
8
8

otto
8

Quindi, quando abbiamo provato in primo luogo a puntare var2 a var1, in realtà var2 ha puntato a 8 (cioè esattamente allo stesso oggetto cui stava puntando var1). Poi abbiamo fatto in modo che var1 puntasse a 'otto', ma siccome var2 non ha mai realmente puntato a var1, quest'ultima ha continuato a puntare all'oggetto 8.

Quindi, ora che abbiamo variabili, numeri e stringhe, impariamo come mischiare tutto assieme!

Oppure segui su Twitter

Commenti

La sezione commenti è messa a disposizione per consentirti di scambiare idee e consigli con gli altri studenti, fanne buon uso!
Nota bene: se vuoi condividere del codice puoi utilizzare i tag <pre> e <code>, così:

<pre><code>
saluto = 'ciao'
puts saluto
</code></pre>