-
함수 리턴의 표현 Unit과 Nothing언어/Kotlin 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은 기능적으로 큰 차이보다 팀 내에서 왜 사용하는지에 대한 공유만 적절히 이루어지면 커뮤니케이션 및 코드리뷰 시 이점을 가질 수 있다고 생각된다.
반응형'언어 > Kotlin' 카테고리의 다른 글
[Kotlin In Action] 선택 표현과 처리 when (0) 2022.04.23 영역함수 (apply, also, let) (0) 2022.03.19 lateinit 사용하기 (0) 2022.03.17 [EffectiveKotlin] 예외를 활용해 코드에 제한을 걸어라 (0) 2022.03.17 [EffectiveKotlin] 가독성을 목표로 설계하라 (0) 2022.03.16