티스토리 뷰

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, +)

 

 

참고 자료

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함