Kotlin Unit 이란?
✨ 개요
코틀린을 처음 접하면 Unit
이라는 타입이 등장합니다.
Java 개발자라면 자연스럽게 ‘void랑 뭐가 다르지’라는 생각이 들 수 있습니다.
오늘은 Unit
의 개념, 필요성, 사용 예시 등 정리해보겠습니다.
1️⃣ Unit이란?
- 코틀린에서 반환 값이 없는 함수의 반환 타입으로 사용
- Java 의
void
와 유사 Unit
은 실제로 하나의 인스턴스를 가진 객체Unit
은 생략 가능
fun doSomething(): Unit {
println("수행")
}
2️⃣ Java의 void와 Kotlin의 Unit 차이
항목 | Java void |
Kotlin Unit |
---|---|---|
타입 여부 | 타입이 아님 (void는 비어있음) | 하나의 타입 (Unit 타입, 값 존재) |
객체 여부 | 없음 | Unit 은 싱글톤 객체 (object Unit ) |
반환 값 | 없음 | Unit 객체를 반환 |
사용 예 | 반환 없는 함수 | 반환 없는 함수, 람다에서 더 유용 |
- result 에 값 저장 가능
val result: Unit = println("Hello") // result에 Unit 저장 가능
3️⃣ 왜 Unit이 필요할까?
- 함수도, if문도, when 도 값을 반환하는 표현식
- 표현식을 명확하게 처리하려면
void
처럼 애매한 타입보다는Unit
이라는 타입 필요 Unit
은 실제 값이 존재하므로 일급 객체처럼 취급
4. 🧾 다양한 예시
- 기본 사용
fun log(message: String): Unit {
println("Log: $message")
}
- 생략 가능
fun log(message: String) {
println("Log: $message")
}
- 고차함수에서 유용 (반환 타입이 Unit이기 때문에 고차함수에서도 명시적 사용 가능)
fun process(action: () -> Unit) {
println("Before")
action()
println("After")
}
process {
println("Action!")
}
5. 🧾 결론
Kotlin의 Unit은 단순히 반환 없는 함수의 결과가 아니라, 하나의 타입으로 존재하는 의미 있는 값입니다. 표현식 중심 언어인 Kotlin에서 모든 값은 타입이 필요하고, 그 역할을 Unit이 담당합니다. Java의 void와 비슷하지만 훨씬 더 명확하고 유연하게 설계된 특징이 있습니다.