클로저는 어떤 상수나 변수의 참조를 캡쳐(capture)해 저장할 수 있습니다. Swift는 이 캡쳐와 관련한 모든 메모리를 알아서 처리합니다.
전역함수(global Function)와 중첩함수(nested function)은 실제 클로저의 특별한 경우입니다.
<aside> 💡 클로저는 주로 한 함수의 인자값이 다른 함수의 결과값일 때 자주 활용된다. 즉 함수 A가 수행된 결과로 산출된 값이 함수 B의 인자로 활용되는 경우를 말합니다.
</aside>
return
하고 클로저를 다른 곳에 보관 할 수도 있습니다. 클로저는 Swift를 처음 배울 때 특히 자신의 매개 변수를 accept
하거나 return
할 때 읽기가 어렵습니다. 하지만 클로저를 자주 보게 되면 쉽게 익숙 해 질 거예요!클로저는 String
과 Int
처럼 사용할 수 있으므로 이것을 함수에 전달할 수 있습니다. 이건 처음배우는 분들에겐 정말 복잡하고 어렵기 때문에 단계별로 진행하도록 하겠습니다.
let driving = {
print("나는 지금 차를 타고 이동중이다.")
}
위 클로저를 함수에 전달하여 함수 내에서 실행 할 수 있도록 하려면 매개변수 유형을 () -> void
즉, 매개변수를 작성하지 않고 아무것도 반환하지 않아야 합니다. 따라서 아래와 같이 작성할 수 있습니다. 함수에 반환하는 곳을 잘 확인해주세요.