언어/Kotlin
함수 리턴의 표현 Unit과 Nothing
원석💎-dev
2022. 3. 17. 23:32
반응형
코틀린에서는 함수의 리턴이 없다는 것을 두 가지 방법으로 표현합니다. 바로 Unit과 Nothing입니다.
1. Unit
Unit은 아무런 값도 리턴하지 않는다는 의미입니다.
fun print(): Unit {
println("Hello world!")
return
}
2. Nothing
Nothing은 리턴이라는 행위 자체를 하지 않는다 또는 예외를 발생시킬 수 있다.
fun print(): Nothing {
println("Hello world!")
}
fun throwException(): Nothing {
throw IllegalStateException()
}
3. Unit?과 Nothing?는 사용하지 말자
[[EffectiveKotlin] 가독성을 목표로 설계하라]의 "Unit?를 리턴하지 말라" 설명했던 내용과 마찬가지다.
- Unit?는 반환값이 없다는 것과 NULL을 리턴한다.
- Nothing?는 리턴이라는 행위 자체를 하지 않거나, 예외를 발생 시키거나 Null을 리턴한다.
Unit?보다 Nothing?은 더 큰 혼란을 줄 수 있다.
4. 결론
Nothing과 Unit은 기능적으로 큰 차이보다 팀 내에서 왜 사용하는지에 대한 공유만 적절히 이루어지면 커뮤니케이션 및 코드리뷰 시 이점을 가질 수 있다고 생각된다.
반응형