필수적으로 오브젝트 오리엔테이션 언어에서 변경 가능하거나 변경 불가능한 클로저를 갖는 것이 더 합리적일까요?변경 가능 또는 불변 클로우즈
예를 들어: 폐쇄가 변경 가능한
int i=5;
function() f={print(i);};
f();
i=6;
f();
경우이 인쇄 것입니다 :
5
6
를 불변 인 경우, 인쇄 할 것이다 :
5
5
내가 실현 불변 클로저를 사용하더라도 다음과 같이 할 수 있습니다.
class I {int i;}
I i=new I();
i.i=5;
function() f={
I j=i;
print(j.i);
};
f();
i.i=6;
f();
그래서 가변성 또는 불변 클로저가 있거나 둘 다를위한 옵션이 있습니까? 변경할 수없는 클로저는 구현하기가 더 쉬운 것처럼 보입니다. 그렇기 때문에이 시점에서 그렇지 않으면 좋은 이유가없는 한 그걸로 갈 것입니다.
변경 가능/변경 불능 클로저 용어는 최소한 모호하며, 클로저 자체를 참조하는 변수가 변경 가능/변경 불가능하다는 것을 의미 할 수도 있습니다. –