Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| 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: | ||
| * ' | * ' | ||
| * letztendlich wird die anonyme Funktion aufgerufen und gibt " | * letztendlich wird die anonyme Funktion aufgerufen und gibt " | ||
| + | |||
| + | |||
| + | ===== 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() | ||
| + | </ | ||
| + | |||
| + | * gibt 30 aus | ||
| + | * inner wird zurückgegeben, | ||
| ====== Begriffe/ | ====== Begriffe/ | ||