var a = 0
var c = { print(a) }
c() // 0
a = 5
c() // 5
클로저 캡처, 캡처리스트에 대해서 찾아보시면 좋을 것 같습니다.
클로저 캡처를 사용한 경우입니다.
클로저 캡처의 경우 swift에서는 값복사가 아닌 참조복사로 이루어집니다.
옵젝시의 경우에는 값복사로 이루어지는 차이점이죠…
var a = 0
var c = { [a] in print(a) }
c() // 0
a = 5
c() // 0
위와 같이 캡처리스트를 사용하면 캡처당시의 값을 그대로 사용할 수 있습니다.
캡처리스트 사용시 value type, reference type 차이점이 있으니 이 부분은
공부하시면 좋을 것 같습니다…(ARC에 대해서 먼저 학습하시는 것도 좋을 것 같습니당 ㅎㅎ 경험상..)
명확하게 설명을 드렸는지 모르겠네요.. 우연히 최근에 배웠던 내용이라..
끄적여봅니다..
잘못된 점이 있다면… 알려주세요 ㅠㅠ ! 감사합니다.