클로저
- 실행 가능한 코드 블럭
- 함수와 다르게 이름 정의는 필요하지 않음. 하지만 매개변수 전달과 반환 값이 존재할 수 있다는 점이 동일.
- 함수는 이름이 있는 클로저라고 보면 됨
- 일급 객체로 전달인자, 변수, 상수, 등에 저장 및 전달이 가능
기본 클로저 문법
- 클로저는 중괄호 { }로 감싸져있음
- 괄호를 이용해 파라미터를 정의
- -> 을 이용해 반환 타입 명시
- 'in' 키워드를 이용해 실행 코드와 분리
{ (매개변수) -> 반환타입 in
실행 코드
}
클로저 사용
sum이라는 상수에 클로저를 할당했다. { } 안에 있는 것이 클로저고, a+b를 할당한 것임.
sumResult라는 상수에 클로저가 담겨있는 sum을 할당했고 값으로 3이 도출됨
함수의 전달인자로서의 클로저
- 클로저는 주로 함수의 전달인자로 많이 사용됨
- 함수 내부에서 원하는 코드블럭을 실행 가능
맨 마지막 줄에는 따로 클로저를 상수/변수에 넣어 전달하지 않고, 함수를 호출할 때 클로저를 바로 작성한 모습이다
'iOS > Swift' 카테고리의 다른 글
[iOS 프로그래밍을 위한 스위프트 기초] Ch2. 다양한 표현 및 확장 - 19. 프로퍼티 (0) | 2021.07.24 |
---|---|
[iOS 프로그래밍을 위한 스위프트 기초] Ch2. 다양한 표현 및 확장 - 18. 클로저 고급 (0) | 2021.07.23 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch2. 다양한 표현 및 확장 - 16. 클래스 vs 구조체 / 열거형 (0) | 2021.07.21 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch2. 다양한 표현 및 확장 - 15. 열거형 (0) | 2021.07.21 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch2. 다양한 표현 및 확장 - 14. 클래스 (0) | 2021.07.21 |