Funktionen
Was wissen wir schon von Funktionen? (wenn wir bis jetzt alles gelesen haben)
- Sie haben einen Namen (Ist in 99.9% der Fälle korrekt. Manchmal haben sie keinen.)
- Sie müssen aufgerufen werden
- Sie führen etwas aus (wenn sie aufgerufen werden)
- Sie beherbergen einen Block (der ja wiederum aus Blöcken bestehen kann)
- Sie hören mit end auf
return dasWasIchZurueckGebenWill
Man kann auch mehr als eins zurückgeben dann sieht das so aus:
return dasWasIchZurueckGebenWill1, dasWasIchZurueckGebenWill2, dasWasIchZurueckGebenWill3, .....
- return muss immer das letzte Schlüsselwort vor einem end sein.
- return beendet die Funktion
- return kann (muss nicht) einen Wert zurückgeben.
- Der Wert kann alles sein, was wir kennen
- return kann mitten in einer Funktion stehen (aber immer vor einem end)
Wenn der Übersetzter im Programm sieht:
FunktionsName()
Dann erkennt er an den Klammern, dass es sich hier um eine Funktion handeln soll, die er ausführen muss.
Er sucht die Funktion in seinem Speicher und wenn sie da ist führt er die Anweisungen, die dort drin stehen aus.
Kennt er sie nicht, so gibt es wieder einen
- Error: (17) attempt to call global 'FunktionsName' (a nil Value)
- Fehler: Versuch 'FunktionsName' aufzurufen (gibt es nicht)
- Sie gibt es wirklich nicht
- Wir haben den Namen falsch geschrieben
- Der Übersetzter hat sie noch nicht eingelesen
[string "Unit1.lua"] wir haben ja noch nicht umbenannt. Alles zu seiner Zeit.
Das war es schon fast. Eins fehlt noch. Wir möchten der Funktion ja auch Werte übergeben.
Jetzt kommt ein neues/altes Wort ins Spiel
Parameter
Wir haben es schon einmal benutzt und zwar bei der Erklärung wie man Variablen am besten schreibt. Von dort wissen wir, dass sie mit einem Unterstrich anfangen sollten.
Wir nehmen an, wir haben eine Funktion die den Namen Laufe hat.
Als Parameter müssen wir ihr übergeben
- Wer soll laufen
- Wohin soll er laufen
Laufe("Angusk", positionHauptQuartier)
Wir sehen: Die Parameter, die wir übergeben, werden mit einem Komma voneinander getrennt.
Die Funktion selbst sieht dann so aus:
function Laufe(_wer, _wohin)
Jetzt wissen wir durch den Unterstrich innerhalb der ganzen Funktion, dass dies ein übergebener Parameter ist. Diesen verändern wir auch nicht, da sonst unser System nicht greift.
Noch eins: Parameter sind innerhalb der Funktion local. Sie können nur dort und in den Blöcken in dieser Funktion angesprochen, verändert und gesehen werden. Ist die Funktion beendet gibt es sie nicht mehr. Sie sind nil.
Das war's jetzt von Funktionen. Alles andere macht der Block in der Funktion.
Eigentlich doch nicht schwer? (kommt noch. In der Kombination von allem)
Die Vervielfältigung der auf diesen Seiten enthaltenen Informationen und Grafiken ist untersagt, ausgenommen davon ist sämtlicher auf diesen Seiten angezeigter Quellcode.
Siehe auch: Haftungsausschluss
Copyright © Robert Schmitz 2006
Siehe auch: Haftungsausschluss
Copyright © Robert Schmitz 2006