Variablen und Zuweisung

Wenn wir bisher einen String oder eine Zahl mit puts ausgegeben haben, war die Information im Anschluss weg. Dies bedeutet, dass wir Text, den wir doppelt ausgeben wollen, auch doppelt eintippen müssen:

puts '...das kannst du zweimal sagen...'
puts '...das kannst du zweimal sagen...'
...das kannst du zweimal sagen...
...das kannst du zweimal sagen...

Es wäre nett, wenn wir es nur einmal tippen müssen und dann wieder darauf zurückgreifen können... es irgendwo speichern können. Nun, das können wir natürlich - ansonsten hätte ich das Thema gar nicht angesprochen!

Um den String im Speicher deines Computers zu speichern, musst du dem String einen Namen geben. Programmierer bezeichnen dies als die Zuweisung und der Name heißt Variable. Solch eine Variable kann quasi jede Reihe von Buchstaben und Ziffern sein, jedoch muss das erste Zeichen ein Kleinbuchstabe sein. Versuchen wir nun dies mit dem letzten Programmbeispiel, ich nenne den String mit dem Namen meinString (obwohl ich genauso auch meinEigenerKleinerString oder heinrichDerAchte hätte nehmen können).

meinString = '...das kannst du zweimal sagen...'
puts myString
puts myString
...das kannst du zweimal sagen...
...das kannst du zweimal sagen...

Wenn man etwas nun mit meinString macht, so tut man es stattdessen mit '...das kannst du zweimal sagen...'. Man kann sich vorstellen, dass die Variable meinString auf '...das kannst du zweimal sagen...' zeigt. Hier ist ein etwas interessanteres Beispiel:

name = 'Patricia Rosanna Mildred Oppenheimer'
puts 'Mein Name ist '+ name +'.'
puts 'Wow! '+ name +' ist wirklich ein langer Name!'
Mein Name ist Patricia Rosanna Mildred Oppenheimer.
Wow! Patricia Rosanna Mildred Oppenheimer ist wirklich ein langer Name!

Ebenso wie wir einer Variablen ein Objekt zuweisen können, können wir auch ein neues zuweisen. (Deshalb heißen sie Variablen: denn das, worauf sie zeigen, kann sich ändern.)

komponist = 'Mozart'
puts komponist+ ' war unbekannt zu seiner Zeit.'
komponist = 'Beethoven'
puts 'Ich persönlich bevorzuge '+ komponist
Mozart war unbekannt zu seiner Zeit.
Ich persönlich bevorzuge Beethoven.

Natürlich kann man Variablen verschiedene Objekte zuweisen, nicht nur Strings:

var = 'nur ein anderer '+'String'
puts var
var =5* (1+2)
puts var
nur ein anderer String
15

Tatsächlich können Variablen quasi auf alles zeigen... außer auf andere Variablen. Was passiert also, wenn wir es versuchen?

var1 = 8
var2 = var1
puts var1
puts var2
puts ''
var1 = 'acht'
puts var1
puts var2
8
8
acht
8

Wenn wir die Variable var2 auf die Variable var1 zeigen lassen, so zeigt sie statt dessen auf die Zahl 8 (genauso wie var1 darauf zeigt). Dann lassen wir var1 auf 'acht' zeigen, aber weil var2 niemals wirklich auf var1 zeigte, zeigt var2 weiterhin auf 8.

Da wir nun Variablen, Zahlen und Strings kennen, mischen wir dies mal alles!