English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin 기본 및 명명된 매개변수

이 문서에서는 예시를 통해 기본 매개변수와 이름 매개변수를 이해하게 됩니다.

Kotlin 기본 매개변수

Kotlin에서는 함수 정의 내에서 매개변수에 기본 값을 제공할 수 있습니다.

매개변수를 전달하여 함수를 호출하면 전달된 매개변수를 매개변수로 사용합니다. 하지만 매개변수를 전달하지 않고 함수를 호출하면 기본 매개변수를 사용합니다.

기본 매개변수는 어떻게 작동하는가?

1: 모든 매개변수를 전달

foo() 함수는 두 개의 매개변수를 가지고 있으며, 매개변수는 기본 값이 제공됩니다. 하지만 foo()는 위의 프로그램에서 두 개의 매개변수를 전달하여 호출됩니다. 따라서 기본 매개변수는 사용되지 않습니다.

foo() 함수에서 letter와 number의 값은 'x'와 2.

2: 모든 매개변수를 전달하지 않고 하나만 전달

여기서는 foo() 함수에 단 하나의 매개변수(첫 번째 매개변수)만 전달됩니다. 따라서 첫 번째 매개변수는 함수에 전달된 값으로 사용됩니다. 하지만 두 번째 매개변수 number는 두 번째 매개변수를 전달하지 않았기 때문에 기본 값으로 사용됩니다.

foo() 함수에서 letter와 number의 값은 'y'와 15.

3: 어떤 매개변수도 전달하지 않음

여기서는 어떤 매개변수도 전달하지 않고 foo() 함수를 호출합니다. 따라서, 두 개의 매개변수 모두 기본 값으로 사용됩니다.

foo() 함수에서 letter와 number의 값은 'a'와 15.

예시: Kotlin 기본 매개변수

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    println("매개변수를 전달하지 않았을 때의 출력:")
    displayBorder()
    println("\n\n"*대체로 첫 번째 매개변수로 사용됩니다.")
    println("첫 번째 매개변수를 전달할 때의 출력:")
    displayBorder('*)
    println("\n\n"*대체로 첫 번째 매개변수로 사용됩니다.")
    println("5두 번째 매개변수로 사용됩니다.")
    println("두 개의 매개변수를 동시에 전달할 때의 출력:")
    displayBorder('* 5)
}

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

매개변수를 전달하지 않았을 때의 출력:
===============
*대체로 첫 번째 매개변수로.
첫 번째 매개변수를 전달할 때의 출력:
***************
*대체로 첫 번째 매개변수로.
5두 번째 매개변수로.
두 개의 매개변수를 동시에 전달할 때의 출력:
*****

Kotlin 이름 매개변수

이름 매개변수에 대해 논의하기 전에, 위의 코드를 조금 수정해 보겠습니다:

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(5)
}

여기서는 두 번째 매개변수를 displayBorder() 함수에 전달하고 첫 번째 매개변수에 기본 매개변수를 사용하려고 시도합니다. 하지만, 이 코드는 사용 오류를 발생시킵니다. 이는 컴파일러가 문자(Char 타입)에5(Int 값).

이러한 문제를 해결하기 위해 이름 매개변수를 사용할 수 있습니다. 방법은 다음과 같습니다:

예시: Kotlin 이름 매개변수

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(length = 5)
}

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

=====

위의 프로그램에서는 이름이 있는 매개변수를 사용합니다. (length = 5)를 사용하여 length 함수 정의에서 이 값을 사용해야 합니다. (실제 매개변수 위치와 관계없음).

첫 번째 매개변수 문자는 프로그램에서 기본 값 '='을 사용합니다.