Kotlin/포스팅

코틀린 위치 기반 인자와 이름 붙은 인자

짜집퍼박사(짜박) 2023. 12. 17. 08:50

코틀린에서는 함수를 호출할 때 위치 기반 인자(Positional Argument)와 이름 붙은 인자(Named Argument)를 모두 사용할 수 있습니다. 이는 함수 호출 시 매개변수에 값을 전달하는 방식을 다양하게 할 수 있게 해주는 기능입니다.

 

1. 위치 기반 인자 (Positional Argument)

가장 일반적인 방식으로, 함수의 매개변수 순서대로 값을 전달하는 방식입니다.

fun printDetails(name: String, age: Int, city: String) {
    println("Name: $name, Age: $age, City: $city")
}

// 위치 기반 인자 사용
printDetails("John", 25, "New York")

 

2. 이름 붙은 인자 (Named Argument)

매개변수의 이름을 명시하여 값을 전달하는 방식입니다.

// 이름 붙은 인자 사용
printDetails(name = "Jane", age = 30, city = "London")

이름 붙은 인자를 사용하면 매개변수의 순서에 상관없이 값을 전달할 수 있으며, 가독성을 높일 수 있습니다. 또한 일부 매개변수만 선택적으로 사용할 때 특히 유용합니다.

 

3. 혼용 사용

이름 붙은 인자와 위치 기반 인자를 혼용하여 사용할 수 있습니다.

printDetails("Alice", city = "Paris", age = 28)

이름 붙은 인자는 해당 매개변수의 이름을 명시하므로 함수 정의와는 상관없이 순서를 바꿔서 사용할 수 있습니다.

 

4. 디폴트 값이 있는 매개변수와 혼용

디폴트 값이 있는 매개변수와 함께 사용할 때 위치 기반 인자와 이름 붙은 인자를 혼용하여 활용할 수 있습니다.

fun printDetailsWithDefault(name: String, age: Int = 30, city: String = "Unknown") {
    println("Name: $name, Age: $age, City: $city")
}

// 혼용하여 사용
printDetailsWithDefault("Bob", city = "Tokyo")

 

5. Varargs와 이름 붙은 인자

가변 인자(varargs)와 함께 이름 붙은 인자를 사용할 수 있습니다.

fun printNumbers(vararg numbers: Int, message: String = "Numbers:") {
    println("$message ${numbers.joinToString(", ")}")
}

// 이름 붙은 인자를 사용하여 메시지를 지정
printNumbers(1, 2, 3, message = "List of numbers:")

이렇게 이름 붙은 인자는 함수 호출 시의 가독성을 높여주고, 특히 매개변수가 많거나 일부 매개변수만 사용하는 경우에 유용하게 사용됩니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코틀린 디폴트 값  (0) 2023.12.17
코틀린 오버로딩  (0) 2023.12.17
코틀린 확장 함수  (0) 2023.12.17
코틀린 로컬 함수  (0) 2023.12.17
코틀린 익명 함수  (0) 2023.12.17