Closures: Difference between revisions
Jump to navigation
Jump to search
Line 7: | Line 7: | ||
=Overview= | =Overview= | ||
A closure is an instance of a function that can reference non-local variables of that function with no restrictions. This is where the name comes from, a closure '''closes around''' | A closure is an instance of a function that can reference non-local variables of that function with no restrictions. This is where the name comes from, a closure '''closes around''' the lexical scope it is created in, thereby capturing variables. The closure can access the data when it executes. [[Go_Closures#Overview|Go closures]] behave this way. [[Java_8_Lambda_Expressions#Variable_Capture| Java 8 lambda expression]] are different, in that they can only refer final local variables in the scope in which the lambda was declared. |
Revision as of 20:16, 16 January 2024
Internal
Overview
A closure is an instance of a function that can reference non-local variables of that function with no restrictions. This is where the name comes from, a closure closes around the lexical scope it is created in, thereby capturing variables. The closure can access the data when it executes. Go closures behave this way. Java 8 lambda expression are different, in that they can only refer final local variables in the scope in which the lambda was declared.