[swift] 클로저 외부 변수 접근

Swift에서 클로저를 사용할 때 주의해야 할 점 중 하나는 클로저가 외부 변수에 접근할 수 있다는 것입니다.

외부 변수에 접근하기

클로저는 함수 내에 정의되었지만 외부 변수에 접근할 수 있습니다. 예를 들어, 아래와 같이 클로저를 사용하여 외부 변수에 접근할 수 있습니다.

var outsideVariable = 10

let closure = {
    print(outsideVariable)
}

closure() // 출력: 10

주의사항

클로저에서 외부 변수를 수정할 때는 해당 변수가 var로 선언되어 있어야 합니다.

var outsideVariable = 10

let closure = {
    outsideVariable += 5
}

closure()
print(outsideVariable) // 출력: 15

하지만, 클로저 내부에서 외부 변수를 수정하는 것은 코드를 이해하기 어렵게 만들 수 있으므로 주의해서 사용해야 합니다.

외부 변수를 클로저에서 안전하게 사용하기 위해서는 클로저의 캡처 리스트를 적절히 활용하는 것이 좋습니다.

더 많은 정보는 Swift 공식 문서를 참고하세요.