아이템 13: Unit을 리턴하지 말라에서 나온 용어
Unit 타입은 Kotlin에서 특별한 타입으로, 함수가 아무런 유의미한 값을 반환하지 않을 때 사용된다. 이는 Java의 void와 유사하지만, 몇 가지 중요한 차이점이 있다.
fun printMessage(message: String): Unit {
println(message)
}
fun printMessage(message: String) {
println(message)
}
// Unit을 반환하는 함수
fun greet(name: String): Unit {
println("Hello, $name")
}
// Unit을 생략한 함수
fun printMessage(message: String) {
println(message)
}
// 고차 함수에서 Unit 사용
fun performAction(action: () -> Unit) {
action()
}
fun main() {
greet("Alice")
printMessage("Welcome to Kotlin")
// 고차 함수 호출
performAction { println("Action performed!") }
}
고차 함수는 다른 함수를 인자로 받거나 반환하는 함수이다. Unit 타입은 고차 함수와 함께 자주 사용된다. 고차 함수의 인자로 전달된 함수가 값을 반환하지 않는다면, 해당 함수의 반환 타입은 Unit이다.
// 값을 반환하지 않는 고차 함수
fun repeatAction(times: Int, action: () -> Unit) {
for (i in 0 until times) {
action()
}
}
fun main() {
// repeatAction에 전달된 함수는 Unit을 반환
repeatAction(3) {
println("This action is repeated")
}
}