Lua Logo
Funktionen

Was wissen wir schon von Funktionen? (wenn wir bis jetzt alles gelesen haben)
Sie können auch etwas zurückgeben. Hierzu benutzen wir das Schlüsselwort return
    
    return dasWasIchZurueckGebenWill
    
Man kann auch mehr als eins zurückgeben dann sieht das so aus:
    
    return dasWasIchZurueckGebenWill1, dasWasIchZurueckGebenWill2, dasWasIchZurueckGebenWill3, .....
    


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
Was kann das für Gründe haben?
Übrigens: Die (17) oben, ist die Zeilennummer, in der das passiert ist. Davor steht auch noch die Datei in der es passiert ist. In unserem Fall:
[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
Dann ist der Aufruf der Funktion:
    
    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