Maison >Problème commun >Qu'est-ce que la fermeture

Qu'est-ce que la fermeture

藏色散人
藏色散人original
2019-08-03 09:17:169221parcourir

Qu'est-ce que la fermeture

Qu'est-ce qu'une fermeture ?

En informatique, la fermeture (anglais : Closure), également appelée fermeture lexicale (Lexical Closure) ou fermeture de fonction (function Closures), est une fonction qui fait référence à des variables libres. La variable libre référencée restera avec la fonction même après avoir quitté l'environnement dans lequel elle a été créée.

Il existe donc une autre façon de dire qu'une fermeture est une entité composée d'une fonction et de son environnement de référence associé. Les fermetures peuvent avoir plusieurs instances au moment de l'exécution, et différents environnements de référence et la même combinaison de fonctions peuvent produire différentes instances.

Le concept de fermeture est apparu dans les années 1960, et le premier langage de programmation à implémenter la fermeture était Scheme. Depuis lors, les fermetures ont été largement utilisées dans les langages de programmation fonctionnels tels que ML et LISP. De nombreux langages de programmation impératifs ont également commencé à prendre en charge les fermetures.

Dans certaines langues, lorsqu'une autre fonction peut être (imbriquée) définie au sein d'une fonction, si la fonction interne fait référence aux variables de la fonction externe, une fermeture peut se produire. Au moment de l'exécution, une fois la fonction externe exécutée, une fermeture est formée qui contient le code de la fonction interne et les références aux variables de la fonction externe requise. La variable référencée est appelée la valeur positive.

Le terme fermeture est souvent confondu avec les fonctions anonymes. Cela peut être dû au fait que les deux sont souvent utilisés ensemble, mais ce sont des concepts différents.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:qu'est-ce qu'il y a dedansArticle suivant:qu'est-ce qu'il y a dedans