Lexical closures
클로저는 원래의 범위 밖에서 함수가 사용되더라도 그 어휘적 범위 내의 변수에 접근할 수 있는 함수 객체입니다.
함수는 주변 범위에서 정의된 변수를 캡처할 수 있습니다. 다음 예시에서 makeAdder()
는 변수 addBy
를 캡처합니다. 반환된 함수가 어디로 가든, 그것은 addBy
를 기억합니다.
/// Returns a function that adds [addBy] to the
/// function's argument.
Function makeAdder(int addBy) {
return (int i) => addBy + i;
}
void main() {
// Create a function that adds 2.
var add2 = makeAdder(2);
// Create a function that adds 4.
var add4 = makeAdder(4);
assert(add2(3) == 5);
assert(add4(3) == 7);
}
Last updated