안녕하세요~ 차니에요!
오늘은 1급 객체에 대해 알아볼게요.
Swift의 함수가 일급 객체이므로 Swift로 진행하겠습니다!
1. 일급 객체란?
컴퓨터 프로그래밍 언어 디자인에서, 일급 객체(영어: first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. (위키백과)
2. 일급 객체의 조건
일급 객체가 되기 위해선 아래 3가지 조건을 모두 충족하여야 합니다.
- 변수에 저장할 수 있어야 한다.
- 객체(함수)의 인자로 전달할 수 있어야 한다.
- 객체(함수)의 리턴값으로 사용할 수 있어야 한다.
위 세가지 조건을 모두 충족하고 있기에 Swift의 함수는 일급 객체라고 할 수 있습니다.
2-1. 변수에 저장할 수 있어야 한다.
func firstClassCitizen(v: String) -> String {
print("firstClassCitizen")
return v
}
let fcc = firstClassCitizen
print(fcc("channy"))
2-2. 객체의 인자로 전달할 수 있어야 한다.
func firstClassCitizen(v: String) -> String {
print("firstClassCitizen")
return v
}
func first(v: String) {
print("From first : \(v)")
}
let fcc = firstClassCitizen
first(v: fcc("channy"))
2-3. 객체의 리턴값으로 사용할 수 있어야 한다.
func firstClassCitizen(v: String) -> String {
print("firstClassCitizen")
return v
}
func first(v: String) -> String {
return firstClassCitizen(v: v)
}
print(first(v: "I'm channy"))
여기까지 일급 객체 그리고 스위프트의 함수가 왜 일급 객체인가에 대해 알아보았습니다.
다음 시간에는 일급 객체의 특징들을 극한으로 활용한 클로저를 주제로 포스팅하도록 하겠습니다~!