✅⠀클로저란?
- 클로저는 실행가능한 코드 블럭입니다.
- 함수와 다르게 이름정의는 필요하지는 않지만, 매개변수 전달과 반환 값이 존재 할 수 있다는 점이 동일합니다.
- 함수는 이름이 있는 클로저입니다.
- 일급객체로 전달인자, 변수, 상수 등에 저장 및 전달이 가능합니다.
- 클로저는 주로 함수의 전달인자로 많이 사용됩니다.
클로저 문법
{ (매개변수 목록) -> 반환타입 in
실행 코드
}
💡⠀클로저가 일급 객체라는 것은 클로저를 활용하는데 있어서 어떤 의미를 가질까요? 참고 사이트
일급객체란?
일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
일급 객체의 조건
- 변수나 데이터에 할당 할 수 있어야 한다.
- 객체의 인자로 넘길 수 있어야 한다.
- 객체의 리턴값으로 리턴 할수 있어야 한다.
일급 객체이기 때문에 할 수 있는 것
- 고차함수를 만들 수 있다.
- 콜백을 사용할 수 있다.
고차함수(Higher-order function)
- 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수
- 스위프트의 함수(클로저)는 일급시민(일급객체)이기 때문에 함수의 전달인자로 전달할 수 있으며, 함수의 결과값으로 반환할 수 있습니다
콜백함수