[swift] 클로저 스코프

클로저는 Swift에서 강력한 기능 중 하나입니다. 클로저는 함수와 유사하게 코드 블록을 정의하고 실행할 수 있는 기능을 제공합니다. 클로저는 변수나 상수로 저장하거나 함수의 인자로 전달할 수 있습니다.

클로저 스코프

클로저의 스코프는 클로저가 정의된 위치에서 바로 직전에 정의된 외부 코드 블록까지 확장됩니다. 예를 들어, 함수 내부에서 정의된 클로저는 함수의 파라미터와 변수에 접근할 수 있습니다. 또한 클로저 내부에서 정의된 상수나 변수는 클로저 외부에서도 접근이 가능합니다.

예시

func makeIncrementer(amount: Int) -> () -> Int {
    var total = 0
    let incrementer: () -> Int = {
        total += amount
        return total
    }
    return incrementer
}

let incrementByTwo = makeIncrementer(amount: 2)
print(incrementByTwo()) // Output: 2
print(incrementByTwo()) // Output: 4

위의 예시에서 makeIncrementer 함수는 incrementer 클로저를 반환하는 함수입니다. incrementer 클로저는 외부에 정의된 total 변수와 amount 파라미터에 접근하여 값을 변경하고 반환합니다.

클로저는 Swift에서 매우 강력한 기능을 제공하고 있으며, 스코프 규칙을 이해하고 활용하는 것이 중요합니다.

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