1급 객체란?

JS·2023년 2월 5일
0

Tech Reference

목록 보기
10/13
post-thumbnail

1급 객체(First-class Citizen)이란?

프로그래밍 언어에서 1급 객체의 의미는 다음과 같다

함수의 매개변수가 될 수 있다
함수의 결과로 반환될 수 있다
할당문의 대상이 될 수 있다
항목이 동일한지 테스트할 수 있다

C# 에서

C#의 경우 이 모든 조건을 충족하기 때문에 First Class Language라 한다

C#에서 함수는 대리자(Delegate)를 통하여 타입을 부여받고, 객체처럼 사용할 수 있다. 이렇게 객체로서 정의되면 프로그래밍 언어는 1급 함수를 갖게된다 표현한다

객체가 된 함수는 다른 함수에 인수로 전달 될 수 있고, 다른 함수에 의해 반환될 수 있으며, 변수에 값으로 할당할 수 있고 테스트 또한 가능해진다

개념의 이해를 위해 C언어를 예로 들면, C에서는 함수를 다른 함수에 인수로서 전달할 수 없다. 따라서 C에서는 함수를 2급 객체라 표현한다. 하지만 C#에서는 대리자를 통하여 다른 함수에 인수로서 전달하기 때문에 1급 객체라고 표현한다


Reference

profile
게임 프로그래머 지망생

0개의 댓글