[Swift] 클로저

부스트코스-iOS 프로그래밍을 위한 스위프트 기초

✅⠀클로저란?

  • 클로저는 실행가능한 코드 블럭입니다.
  • 함수와 다르게 이름정의는 필요하지는 않지만, 매개변수 전달과 반환 값이 존재 할 수 있다는 점이 동일합니다.
  • 함수는 이름이 있는 클로저입니다.
  • 일급객체로 전달인자, 변수, 상수 등에 저장 및 전달이 가능합니다.
  • 클로저는 주로 함수의 전달인자로 많이 사용됩니다.

클로저 문법

{ (매개변수 목록) -> 반환타입 in
    실행 코드
}

💡⠀클로저가 일급 객체라는 것은 클로저를 활용하는데 있어서 어떤 의미를 가질까요? 참고 사이트

일급객체란?

일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.

일급 객체의 조건

  • 변수나 데이터에 할당 할 수 있어야 한다.
  • 객체의 인자로 넘길 수 있어야 한다.
  • 객체의 리턴값으로 리턴 할수 있어야 한다.

일급 객체이기 때문에 할 수 있는 것

  • 고차함수를 만들 수 있다.
  • 콜백을 사용할 수 있다.

고차함수(Higher-order function)

  • 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수
  • 스위프트의 함수(클로저)는 일급시민(일급객체)이기 때문에 함수의 전달인자로 전달할 수 있으며, 함수의 결과값으로 반환할 수 있습니다

콜백함수

  • 전달인자(Argument)로 받는 함수

좋은 웹페이지 즐겨찾기