본문 바로가기
Swift

일급 객체 (First-Class Object)

by JDeoks 2023. 10. 16.

일급 객체:

다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체

 

아래의 세 가지 조건을 충족하는 객체를 말함

1. 변수나 데이터 구조 안에 담을 수 있다.

2. 인자로 전달할 수 있다.

3. 반환값으로 사용할 수 있다

 

Swift는  함수나 클로저 등에 대해 위 특징을 지원한다.

 

1. 변수나 데이터 구조 안에 담을 수 있다.

// 함수를 변수에 담기
func greet() {
    print("hello!")
}

let myFunction = greet
myFunction() // "hello!" 출력

greet()함수를 변수에 저장

2. 인자로 전달할 수 있다.

func sayHello(to name: String) {
    print("hello, \(name)!")
}

func greetSomeone(greetingFunction: (String) -> Void, name: String) {
    greetingFunction(name)
}

greetSomeone(greetingFunction: sayHello, name: "Alice") // "hello, Alice!"

 

greetSomeone의 인자로 sayHello 전달

3. 반환값으로 사용할 수 있다

func getGreetingFunction() -> (String) -> Void {
    func greeting(name: String) {
        print("hello, \(name)!")
    }
    return greeting
}

let myGreetingFunction = getGreetingFunction()
myGreetingFunction("Bob") // "hello, Bob!"

(String) -> Void타입의 함수를 반환하는 함수인 getGreetingFunction()

'Swift' 카테고리의 다른 글

클로저 - 캡쳐  (0) 2023.10.17
클로저 (Closures)  (2) 2023.10.17
스크롤 뷰 쉽게 만들기  (0) 2023.10.05
제네릭(Generics)  (1) 2023.10.04
앱 기본 언어가 한국어가 아닐때  (0) 2023.08.16