채용 인터뷰 과정에서 필자의 친구는 “함수에서 Unit?을 리턴한다면, 그 이유는 무엇일까요?” 라는 질문을 받았다

Boolean이 true/false 를 갖는 것처럼, Unit?은 Unit, null이라는 값을 가질 수 있습니다

fun keyIsCorrect(key: String): Boolean = key.length > 5
fun verifyKey(key: String): Unit? = if (key.length > 5) null else Unit

if (!keyIsCorrect(key)) return
verifyKey(key) ?: return

지금까지 여러 코드를 보면서 Unit?을 쉽게 읽을 수 있는 경우는 거의 보지 못했고, 오해를 불러 일으키기 쉽다.

기본적으로 Unit?을 리턴하거나, 이를 기반으로 연산하지 않는 것이 좋다.

image.png

Unit vs Void vs Nothing

https://stackoverflow.com/questions/55953052/kotlin-void-vs-unit-vs-nothing