Variablen

Variablen sind ein weiterer grundlegender Teil von Lua. Grundsätzlich kann man Variablen als "Container" oder "Topf" sehen, in dem man Werte ablegen kann. Das können Zahlen, Zeichenketten und "Boolsche Werte" sein. Um die Notwendigkeit von Variablen im Allgemeinen verstehen zu können, ist ein wenig "Hardwarekunde" notwendig. Genauer gesagt muss der RAM, oder auch Arbeitsspeicher, genannt ein wenig genauer unter die Lupe genommen werden.

Der Arbeitsspeicher ist ein wesentlicher Bauteil eines jeden Computers oder "computerähnlichen" Geräts. Jedes mal, wenn eine Anwendung ausgeführt wird, wird sie vollständig in den RAM geladen. Den RAM kann man sich dabei als eine gigantische Ansammlung von aneinandergereihten Töpfen vorstellen, wobei jeder Topf eine Kombination aus acht 1en und 0en enthalten kann. Der Computer kennt nämlich aufgrund seiner physikalischen Beschaffenheit nur die Zustände 1 und 0, also Strom fliesst, oder Strom fliesst nicht. Diese Eigenschaft lässt sich wunderbar in Hardwareschaltungen ausnutzen, es können Berechnungen mit den 1en und 0en ausgeführt werden. So können durch ein Zusammenspiel von Chemie und Physik "Hardwaregatter" gebaut werden, die zum Beispiel eine Addition von zwei Zuständen im Binärsystem ermöglichen. Uns ist dieses "Binärsystem" aber nicht vertraut, wir rechnen selbst alltäglich nur im "Dezimalsystem". Die Folgen von Bits (1en und 0en) lassen sich aber problemlos ins Dezimalsystem, und auch umgekehrt, umwandeln. Die Folge 11010111 steht zum Beispiel für die Zahl 215. Eine Bitfolge, bestehend aus acht 1en und 0en, wurde als Byte festgelegt. Die größte, darin speicherbare Bitfolge ist 11111111 und steht für die Dezimalzahl 255. Im Arbeitsspeicher können alle Werte eines Programms gespeichert werden, allerdings in Form von 1en und 0en. Kommazahlen werden dabei in einer anderen Kodierung gespeichert als natürliche Zahlen. In vielen Programmiersprachen muss daher angegeben werden, um was für einen Zahlentypen, man spricht auch vom Dateitypen, es sich dabei handelt. Das ist in Lua nicht der Fall, der Interpreter erledigt das alles vollkommen automatisch.

Fazit: Variablennamen und ihr zugewiesener Wert werden im Arbeitsspeicher des Computers in Form von 1en und 0en abgelegt. Variablenname und Wert sind dabei eng verknüpft, über den Variablennamen gelangt man an den darin gespeicherten Wert.

Eine ganze Menge Theorie dürfte nun für Verwirrung gesorgt haben. Daher widmen wir uns jetzt der Erstellung und dem Gebrauch von Variablen:

mampfi = 1
doppelmampfi = 2
 
ganz_was_anderes = "hi, wie gehts"

Hierbei handelt es sich um die Variablen "mampfi", "doppelmampfi" und "ganzwasanderes". Wie sich erkennen lässt ist eine Variable nichts anderes als eine Zeichenfolge, bestehend aus Buchstaben von A-Z und Zahlen 0-9. Variablennamen dürfen nur aus Buchstaben von A-Z (a-z) und Zahlen von 0-9 bestehen, Sonderzeichen und alleinstehende Zahlen sind nicht erlaubt. Die Variable "mampfi" ist nach der Zuweisung eines Zahlenwerts mittels des "Zuweisungsoperators" "=" gleichwertig mit der Zahl 1, "doppelmampfi" ist gleichwertig mit der Zahl 2 und "ganzwasanderes" speichert die Zeichenkette "hi, wie gehts". Die Werte können jederzeit abgerufen werden, aber auch wieder geändert werden. Diese Eigenschaften sind durchaus nützlich. An Variablen führt absolut kein weg vorbei. Ein paar wenige Beispielprogramme sollen dies veranschaulichen:

mampfi = 1
 
print(mampfi)
print("mampfi")

Hier liegt das Augenmerk auf der Ausgabe. Die erste Textausgabe gibt die Zahl 1 aus, die zweite Textausgabe hingegen gibt die Zeichenkette "mampfi" aus. Das kommt daher, weil die Variable "mampfi" den Wert 1 enthält. Bei der zweiten Textausgabe aber ist das Argument der print-Funktion nicht die Variable "mampfi", sondern eine Zeichenkette!

Fazit: Zeichenketten werden grundsätzlich von Anführungszeichen umhüllt. Variablen müssen immer ohne Anführungszeichen stehen, Variablennamen sind selbst keine anzeigbaren Zeichenketten, sonder nur Synonyme für eine Zahl oder Zeichenkette.

Selbstverständlich kann man auch eine Variable mit print() ausgeben, die eine Zeichenkette enthält:

ganz_was_anderes = "hi, wie gehts"
print(ganz_was_anderes)

Ebenso sind mathematische Rechenoperation mit Variablen möglich:

mampfi = 1
doppelmampfi = 2
 
print(mampfi+mampfi)
print(2*mampfi)
print(doppelmampfi)
print(doppelmampfi-2*mampfi)

Wie auch in der Mathematik gilt hier die Regel: Potenz vor Klammer vor Punkt vor Strich.

  • ist der Operator für die Multiplikation / ist der Operator für die Division % ist der Operator für die Modulo-Division
  • ist der Operator für die Addition
  • ist der Operator für die Subtraktion ^ ist der Operator für Potenzen

Zuletzt folgt noch ein kurzes Beispiel, wie man Variablen für die Textausgabe verknüpfen beziehungsweise mit Zeichenketten mischen kann.

mampfi = 1
doppelmampfi = 2
 
ganz_was_anderes = "hi, wie gehts"
 
print(ganz_was_anderes.."? - sehr gut!")
print(ganz_was_anderes.."? - "..mampfi.."a")

Wenn es Fragen geben sollte, poste diese doch bitte ins Forum auf http://www.bumuckl.com.

Categories

Tags