여기까지 정리 1

Nothing, Unit 그리고 Void

  • Nothing: “아무 것도 리턴하지 않는다.”는 의미다.
  • 즉, 리턴이라는 행위 자체를 하지 않는다는 의미가 된다. 혹은 예외를 던질 때에도 사용할 수 있다.
  • Unit: java의 void와 같다. 명시적으로 return이 없어도 된다.
  • 리턴 대상이 없는거지 리턴은 한다는 의미가 된다.

왜 void를 두고 Unit일까?

  1. Unit은 싱글톤 인스턴스다. koltin에서는 unit은 타입이면서 객체이기도 하다.
  2. kotlin은 primitive type을 사용하지 않고 전부 class로 만들어서 런타임에 원시 타입으로 변환되도록 하고 있다.
  3. Unit도 void를 래핑한 것과 같은 이치다.

return 생략

  • kotlin에서는 함수 작성 시 블록 {}대신 =으로 식이 본문인 함수를 사용하면 return 키워드를 생략할 수 있다.

함수의 가시성

  • private: 정의 된 파일 안에서만 해당 함수를 볼 수 있다.
  • internal: 적용된 모듈 내부에서만 함수를 사용할 수 있다. 모듈이란 기본적으로 “함께 컴파일 되는 파일 전부”의 의미가 된다.
  • public: 공개다. 최상위 함수는 기본으로 이 가시성을 갖는다.