Kotlin/포스팅

코틀린 가변인자 vararg 키워드

짜집퍼박사(짜박) 2023. 12. 17. 22:03

코틀린에서 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