[swift] 함수의 일급 객체로서의 특징에 대해 설명해주세요.

일급 객체란 무엇인가?

일급 객체(first-class object)는 프로그래밍 언어에서 다음 조건을 만족하는 객체를 가리킨다.

  1. 변수나 데이터 구조 안에 담을 수 있다.
  2. 매개변수로 전달할 수 있다.
  3. 반환값으로 사용할 수 있다.
  4. 동적으로 프로퍼티를 할당할 수 있다.

Swift에서 함수는 일급 객체다

Swift에서는 함수가 일급 객체로 취급된다. 즉, Swift에서 함수는 다음과 같은 특징을 가진다.

예를 들어, 함수를 변수에 할당하고 실행할 수 있다.

func greet() {
    print("Hello, Swift!")
}

let sayHello = greet
sayHello() // "Hello, Swift!" 출력

함수를 매개변수로 받는 함수를 정의할 수도 있다.

func operateOnNumbers(_ operation: (Int, Int) -> Int, _ a: Int, _ b: Int) -> Int {
    return operation(a, b)
}

func add(_ a: Int, _ b: Int) -> Int {
    return a + b
}

let result = operateOnNumbers(add, 5, 3) // result는 8

요약

Swift에서 함수는 일급 객체로 다뤄지므로, 다른 데이터 유형과 마찬가지로 변수에 할당하거나 매개변수로 전달할 수 있으며, 반환값으로 사용할 수 있다. 이러한 특징을 활용하면 함수를 보다 유연하게 다룰 수 있고, 함수형 프로그래밍 스타일을 채택할 수 있다.

참고 자료