2
클로저와 중첩 클로저의 차이점은 무엇입니까? 예제로 좋은 설명이 도움이 될 것입니다.클로저와 중첩 클로저의 차이점은 무엇입니까?
클로저와 중첩 클로저의 차이점은 무엇입니까? 예제로 좋은 설명이 도움이 될 것입니다.클로저와 중첩 클로저의 차이점은 무엇입니까?
변수의 범위와 변수가 바인딩되는 환경.
어떻게 하드 그들이 그라고 ClosureB 내부 후 폐쇄에 바인딩 로컬 범위 LA와 부모 범위 PA는,이다 :
ClosureA가 결합 할 수있는 컴파일러 구현입니다 (잠재적) LB, LA, PA
func a(v1,v2,v3){
closure_b(bv1, bv2, bv3) { # Closure
b_local1 = bv1
b_local2 = v1 # parent scope
closure_c(cv1, cv2) { # Nested closure has 'closure_b's scope too
c_local1 = cv1
c_local2 = bv1 # direct-parent scope
c_local3 = v1 # parent's parent scope (nesting)
c_local4 = b_local2
}
return closure_c;
}
return closure_b(); # closure_b() returns closure_c
}
return 문까지 코드의 모든 내용을 수행합니다. 나는 closure_c가 closure_b 밖에서 접근 가능하다고 생각하지 않았습니다. closure_c가 func a의 범위에서 어떻게 반환 될 수 있는지 설명 할 수 있습니까? 아니면이 예제의 return 문이 올바르지 않습니까? – adamjcooper
제 경우에는 오타가 수정됩니다. –
유용한 예제에 감사드립니다. – adamjcooper