안드로이드/KOTLIN
[Kotlin] Unit과 Nothing
개굴이모자
2022. 12. 10. 16:25
반응형
코틀린에는 return 하지 않아도 되는 반환 유형이 2가지 존재한다. Unit 과 Nothing 이 그것인데, 이 두개의 차이점에 대해 알아보도록 하자.
Unit 이란?
Kotlin 은 반환 유형을 지정하지 않는 경우 반환 유형이 기본적으로 Unit 이 된다. Unit은 Kotlin 에서 값을 반환하지 않음을 의미하며, java 의 void 와 동일하다.
fun returnUnitType1(): Unit {
//return 을 명시적으로 하지 않아도 된다.
}
fun returnUnitType2(): Unit {
return
}
fun returnUnitType3(): Unit {
return Unit
}
따라서, 위의 3 경우 다 무방하다.
Unit 을 반환하는 함수는 return을 생략한다고 해도 암묵적으로 Unit 타입의 객체를 return 하도록 되어있다.
Any의 서브 클래스이다. 또한, Unit 은 타입이면서 싱글톤 인스턴스이기 때문에, 매번 객체를 생성하지 않는다.
Nothing 이란?
Nothing은 어떠한 값도 없고, instance 도 없는 Type 에 해당한다. 따라서, 함수가 return 될 일이 아예 없고 정상 완료되지 않아 throw 되기만하는 경우에 사용된다.
fun infiniteLoop(): Nothing {
while(true) {
println("Loading")
}
}
fun throwException(): Nothing {
throw IllegalStateException()
}
//이외에도 TODO() 함수가 대표적인 Nothing Type에 해당한다.
참고 링크
반응형