일급 객체:
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체
아래의 세 가지 조건을 충족하는 객체를 말함
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 |