티스토리 뷰
https://github.com/JeaSungLEE/iOSInterviewquestions
우선 lv1 - 24 이후 lv1 - 4, 13 번 순서를 통해서 점차 자세히!? 진행할 것 같습니다.
Swift의 클로저와 함수의 차이점은 무엇인가요?
- 클로저가 일급 객체(First-Class Citizen)인 이유는 무엇인가요?
- 함수형 프로그래밍 패러다임에서 클로저가 어떻게 활용되나요?
함수(Function)
- 이름이 있는 코드 블럭
- func 키워드로 선언
- 전역, 타입 내 정의해서 사용
- 캡처 기능을 필요로 하지 않음
클로저(Closure)
- 이름이 없는 코드 블럭
- 중괄호로 표현
- 변수로 전달, 다른 함수 내부 등 자유롭게 사용
- 변수, 상수를 캡처해서 사용해야 함
일급 객체 (First-Class Citizen)
- 변수에 할당 가능
- 함수의 인자로 전달 가능
- 함수의 반환값으로 사용 가능
- 런타임에 생성 및 수정 가능
- → 코드가 실행이 되었을때 조건에 따라 다른 동작을하는 클로저를 생성할 수 있음을 의미
함수형 프로그래밍에서 클로저의 활용(예시)
map, filter, reduce와 같은 고차함수에서 핵심 적으로 사용되며, 함수를 조합하는 경우에도 사용된다.
let numbers = [1,2,3,4,5]
let squared = numbers.map { $0 * $0 }
let filtered = numbers.filter { $0 % 2 == 0 }
let sum = numbers.reduce(0, +)
참고 자료
- 함수 VS 클로저 (https://explorer89.tistory.com/228)
- 일급 객체 (https://any-ting.tistory.com/82)
'프로그래밍 > 기초' 카테고리의 다른 글
| [Lv1 - 13] 고차함수(Higher Order Functions) (0) | 2025.07.21 |
|---|---|
| [Lv1 - 4] 클로저(Closure) (0) | 2025.07.15 |
| CPU, RAM, 저장 장치의 역할과 상호 작용 (0) | 2025.07.01 |
| 클린아키텍처(Clean Architecture) (2) | 2025.05.25 |
| 메모리구조, ARC (with GC, 약한 참조, 미소유 참조) (0) | 2025.02.10 |
