코틀린에서 vararg는 가변 인자(variable number of arguments)를 나타내는 키워드입니다. 함수를 정의할 때 가변 인자를 사용하면, 해당 함수를 호출할 때 임의의 개수의 인자를 전달할 수 있습니다. 이는 Java에서의 varargs와 유사하지만 몇 가지 차이가 있습니다.
1. 가변 인자 정의
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
- vararg 키워드를 사용하여 가변 인자를 정의합니다.
- numbers는 배열로 취급되며, 함수 내부에서는 배열처럼 다룰 수 있습니다.
2. 가변 인자 사용
printNumbers(1, 2, 3)
printNumbers(4, 5, 6, 7, 8)
함수 호출 시 임의의 개수의 인자를 전달할 수 있습니다.
3. 가변 인자와 다른 매개변수 혼용
fun greet(vararg names: String, message: String) {
for (name in names) {
println("$message, $name!")
}
}
greet("Alice", "Bob", message = "Hello")
가변 인자와 다른 매개변수를 혼용하여 사용할 수 있습니다. 가변 인자는 매개변수 목록의 끝에 위치해야 합니다.
4. 전개 연산자(Spread Operator)
가변 인자로 배열이나 리스트를 전달할 때, 전개 연산자 *를 사용하여 각 요소를 개별 인자로 전달할 수 있습니다.
val numbers = intArrayOf(1, 2, 3)
printNumbers(*numbers)
5. 가변 인자와 다른 매개변수 혼용 (Kotlin 1.3 이상)
Kotlin 1.3부터는 가변 인자 뒤에 다른 매개변수가 위치해도 상관없습니다.
fun greet(message: String, vararg names: String) {
for (name in names) {
println("$message, $name!")
}
}
greet("Hello", "Alice", "Bob")
6. 가변 인자의 타입 추론
fun <T> printItems(vararg items: T) {
for (item in items) {
println(item)
}
}
printItems(1, "two", 3.0, listOf(4, 5))
가변 인자는 타입 인자 추론을 사용할 수 있습니다.
가변 인자를 사용하면 함수를 호출할 때 다양한 개수의 인자를 전달할 수 있어 편리합니다. 함수 내부에서는 배열로 처리되므로 배열과 비슷한 방식으로 사용할 수 있습니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 함수 가시성 (접근제한자) (0) | 2023.12.23 |
---|---|
코틀린 함수의 영역 (0) | 2023.12.23 |
코틀린 디폴트 값 (0) | 2023.12.17 |
코틀린 오버로딩 (0) | 2023.12.17 |
코틀린 위치 기반 인자와 이름 붙은 인자 (0) | 2023.12.17 |