여기까지 정리 1
Nothing, Unit 그리고 Void
- Nothing: “아무 것도 리턴하지 않는다.”는 의미다.
- 즉, 리턴이라는 행위 자체를 하지 않는다는 의미가 된다. 혹은 예외를 던질 때에도 사용할 수 있다.
- Unit: java의 void와 같다. 명시적으로
return이 없어도 된다. - 리턴 대상이 없는거지 리턴은 한다는 의미가 된다.
왜 void를 두고 Unit일까?
- Unit은 싱글톤 인스턴스다. koltin에서는 unit은 타입이면서 객체이기도 하다.
- kotlin은 primitive type을 사용하지 않고 전부 class로 만들어서 런타임에 원시 타입으로 변환되도록 하고 있다.
- Unit도 void를 래핑한 것과 같은 이치다.
return 생략
- kotlin에서는 함수 작성 시 블록
{}대신=으로 식이 본문인 함수를 사용하면 return 키워드를 생략할 수 있다.
함수의 가시성
- private: 정의 된 파일 안에서만 해당 함수를 볼 수 있다.
- internal: 적용된 모듈 내부에서만 함수를 사용할 수 있다. 모듈이란 기본적으로 “함께 컴파일 되는 파일 전부”의 의미가 된다.
- public: 공개다. 최상위 함수는 기본으로 이 가시성을 갖는다.