Benutzer-Werkzeuge

Webseiten-Werkzeuge


lua

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
lua [2024/05/04 19:07]
root [Funktionen]
lua [2024/05/26 17:30] (aktuell)
root [Funktionen]
Zeile 450: Zeile 450:
   * 'function (string) print(string) end' übergibt eine anonyme Funktion (ohne Namen) beim Funktionsaufruf   * 'function (string) print(string) end' übergibt eine anonyme Funktion (ohne Namen) beim Funktionsaufruf
   * letztendlich wird die anonyme Funktion aufgerufen und gibt "hello" zurück   * letztendlich wird die anonyme Funktion aufgerufen und gibt "hello" zurück
 +
 +
 +===== Closure =====
 +
 +  * Funktionen in anderen Funktionen haben Zugriff auf die Variablen der sie umgebenden Funktion
 +  * der Zugriff und die Werte bleiben bestehen, auch wenn der Scope der sie umgebenden Funktion nicht mehr existiert
 +      * im Prinzip bekommt die Unterfunktion eine Kopie der Variablen der sie umgebenden Funkion
 +      * im Prinzip kann man es vergleichen mit einem Objekt, dessen Methode Zugang zu den Funktionen eben des Objektes hat
 +
 +
 +<sxh lua>
 +function outer(base)
 +    local result = base * 5
 +    inner = function()
 +        print(result)
 +        end
 +    return inner
 +end
 +
 +bla = outer(6)
 +bla()
 +</sxh>
 +
 +  * gibt 30 aus
 +  * inner wird zurückgegeben, hat aber (noch) Zugriff auf die Variablen seiner (nicht mehr existierenden) Eltern-Funktion outer
 ====== Begriffe/Konzepte ====== ====== Begriffe/Konzepte ======
  
lua.1714842453.txt.gz · Zuletzt geändert: 2024/05/04 19:07 von root