Skip to content
EntityQ535335· pop 28· linked from 132 articles

Замыкание

Sign in to save

Also known as lexical closure, function closure

technique for creating lexically scoped first class functions

Wikidata facts

Subclass of
technique
Has use
scope
Show 1 more fact
Sources (2)

via Wikidata · CC0

Article · Русский

Замыкание (англ. closure) в программировании — функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся её параметрами. Говоря другим языком, замыкание — функция, которая ссылается на в своей области видимости. Замыкание, так же как и экземпляр объекта, есть способ представления функциональности и данных, связанных и упакованных вместе. Замыкание — это особый вид функции. Она определена в теле другой функции и создаётся каждый раз во время её выполнения. Синтаксически это выглядит как функция, находящаяся целиком в теле другой функции. При этом вложенная внутренняя функция содержит ссылки на локальные переменные внешней функции. Каждый раз при выполнении внешней функции происходит создание нового экземпляра внутренней функции, с новыми ссылками на переменные внешней функции. В случае замыкания ссылки на переменные внешней функции действительны внутри вложенной функции до тех пор, пока работает , даже если внешняя функция закончила работу, и переменные вышли из области видимости. Замыкание связывает код функции с её лексическим окружением (местом, в котором она определена в коде). Лексические переменные замыкания отличаются от глобальных переменных тем, что они не занимают глобальное пространство имён. От переменных в объектах они отличаются тем, что привязаны к функциям, а не объектам.

Abstract from DBpedia / Wikipedia · CC BY-SA