일급 객체 - 위키백과, 우리 모두의 백과사전
- 컴퓨터 프로그래밍 언어 디자인에서 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체
- 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라 함
일급 객체를 구성하는 요소는 기본적인 권리
- 모든 요소는 함수의 실제 매개변수가 될 수 있음
- 모든 요소는 함수의 반환 값이 될 수 있음
- 모든 요소는 할당 명령문의 대상이 될 수 있음
- 모든 요소는 동일 비교의 대상이 될 수 있음
예제
- 정수와 실수처럼 가장 간단한 스칼라 자료형은 대부분 일급 객체임
- 대다수의 구형 언어에서 배열 및 문자열은 일급 객체에 해당하지 않으며 객체에 할당하거나 서브루틴에 매개변수로 전달할 수 없음
- FORTRAN & C 의 경우 배열을 할당할 수 없으며, 함수의 매개변수로는 첫 요소의 위치만 전달할 뿐, 배열 크기는 분실함
함수
- 대다수의 언어에서 함수를 다른 함수에 매개 변수로 전달하거나 리턴 값으로 받을 수 있는데, 이러한 속성이 일급 객체의 조건으로 충분한 지에 대해서는 논쟁의 여지가 있음
- 함수가 '일급 객체'가 되기 위한 조건으로 런타임에 함수 생성 가능 여부를 드는데, 이 조건에 의하면 C와 같은 언어에서의 함수는 일급 객체가 아님
- C의 함수와 같은 객체들은 경우에 따라서 이급 객체로 불리기도 하는데,
- 비록 일급 객체의 속성을 모두 갖추지는 못했다 하더라도 그에 상응하는 방식으로 다뤄질 수 있기 때문