아이템 13 - Unit? 을 리턴하지 말라

ds_chanin

·

2022. 3. 25. 22:41


The type with only one value: the Unit object. This type corresponds to the void  type in Java.

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/

Unit은 공식문서에서 볼 수 있듯 한가지 값을 가질 수 있는 타입을 나타내는 객체이다. Java에서 void 와 비슷한 타입으로 볼 수 있다. (자바의 void 는 값을 가지지 않지만..)

Unit? 는 Unit 이나 null 값을 가질 수 있다. 그래서 이를 이상하게 사용하면 마치 Boolean 처럼 사용할 수 있다.

그렇게 사용하지마라 ~처럼 사용한다는 것 자체가 의도를 벗어난 행위를 하는것이다. 예측하기 어려운 오류를 만들 수 있고 이해하기 어렵다.

Boolean 처럼 사용하려면 아예 Boolean을 반환하도록 리팩토링을 하도록 하자.