Heim >häufiges Problem >Was ist Schließung?
Was ist eine Schließung?
In der Informatik ist der Abschluss (englisch: Closure), auch bekannt als lexikalischer Abschluss (Lexical Closure) oder Funktionsabschluss (Function Closures), eine Funktion, die auf freie Variablen verweist. Die referenzierte freie Variable verbleibt bei der Funktion, auch nachdem sie die Umgebung, in der sie erstellt wurde, verlassen hat.
Man kann also auch anders sagen, dass ein Abschluss eine Entität ist, die aus einer Funktion und der zugehörigen Referenzumgebung besteht. Abschlüsse können zur Laufzeit mehrere Instanzen haben, und unterschiedliche Referenzumgebungen und dieselbe Funktionskombination können unterschiedliche Instanzen erzeugen.
Das Konzept der Schließung erschien in den 1960er Jahren, und die früheste Programmiersprache zur Implementierung der Schließung war Scheme. Seitdem werden Abschlüsse häufig in funktionalen Programmiersprachen wie ML und LISP verwendet. Viele zwingende Programmiersprachen haben auch begonnen, Abschlüsse zu unterstützen.
Wenn in einigen Sprachen eine andere Funktion innerhalb einer Funktion definiert (verschachtelt) werden kann und die innere Funktion auf die Variablen der äußeren Funktion verweist, kann es zu einem Abschluss kommen. Sobald die äußere Funktion zur Laufzeit ausgeführt wird, wird ein Abschluss gebildet, der den Code der inneren Funktion und Verweise auf die Variablen in der erforderlichen äußeren Funktion enthält. Die referenzierte Variable wird Upvalue genannt.
Der Begriff Schließung wird oft mit anonymen Funktionen verwechselt. Das mag daran liegen, dass die beiden oft zusammen verwendet werden, es handelt sich jedoch um unterschiedliche Konzepte.
Das obige ist der detaillierte Inhalt vonWas ist Schließung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!