1급 객체(First-class citizen) 란? with Kotlin

Lazysoul
2 min readMay 31, 2016

--

Function Programming 을 공부 하다보면 1급 객체란 말을 많이 언급됩니다. 그래서 1급 객체 (First-class citizen)란 무엇인가를 공부도하고 정리해 공유 하고자 합니다.

1급 객체란?

아래 3 가지조건을 충족한다면 1급 객체라고 할수 있습니다.

  1. 변수나 데이타에 할당 할 수 있어야 한다.
  2. 객체의 인자로 넘길 수 있어야 한다.
  3. 객체의 리턴값으로 리턴 할수 있어야 한다.

Java와 Kotlin의 비교를 통 Kotlin 의 함수는 왜 1급 객체고 Java의 함수는 1급 객체가 아닌지 알아보겠습니다.

변수나 데이타에 할당 할 수 있어야 한다.

kotlin은 a 에 type이 () -> Unit 인 test 함수 할당이 가능하지만, Java는 불가능 합니다.

객체의 인자로 넘길 수 있어야 한다.

kotlin 은 function 함수의 인자로 함수타입을 전달 할 수 있습니다. 하지만 Java에서는 불가능 합니다.

객체의 리턴값으로 리턴 할 수 있어야 한다.

function함수는 { println(“kotlin”) }, 즉 함수타입을 반환 합니다.

kotlin에서 함수는 변수나 data에 할당이 가능하며, 함수의 인자로 전달가능 하고, 함수의 리턴값으로도 사용 할 수 있습니다. 그렇기 때문에 kotlin의 함수는 1급 객체라고 할 수 있습니다. 반면 Java의 함수는 위 조건들을 만족하지 못하기 때문에 1급 객체라고 할수 없습니다.

Contents

--

--