코딩하는 개굴이

[Kotlin] Unit과 Nothing 본문

안드로이드/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에 해당한다.

 

 

참고 링크

반응형
Comments