English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 예시를 통해 기본 매개변수와 이름 매개변수를 이해하게 됩니다.
Kotlin에서는 함수 정의 내에서 매개변수에 기본 값을 제공할 수 있습니다.
매개변수를 전달하여 함수를 호출하면 전달된 매개변수를 매개변수로 사용합니다. 하지만 매개변수를 전달하지 않고 함수를 호출하면 기본 매개변수를 사용합니다.
foo() 함수는 두 개의 매개변수를 가지고 있으며, 매개변수는 기본 값이 제공됩니다. 하지만 foo()는 위의 프로그램에서 두 개의 매개변수를 전달하여 호출됩니다. 따라서 기본 매개변수는 사용되지 않습니다.
foo() 함수에서 letter와 number의 값은 'x'와 2.
여기서는 foo() 함수에 단 하나의 매개변수(첫 번째 매개변수)만 전달됩니다. 따라서 첫 번째 매개변수는 함수에 전달된 값으로 사용됩니다. 하지만 두 번째 매개변수 number는 두 번째 매개변수를 전달하지 않았기 때문에 기본 값으로 사용됩니다.
foo() 함수에서 letter와 number의 값은 'y'와 15.
여기서는 어떤 매개변수도 전달하지 않고 foo() 함수를 호출합니다. 따라서, 두 개의 매개변수 모두 기본 값으로 사용됩니다.
foo() 함수에서 letter와 number의 값은 'a'와 15.
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두 번째 매개변수로. 두 개의 매개변수를 동시에 전달할 때의 출력: *****
이름 매개변수에 대해 논의하기 전에, 위의 코드를 조금 수정해 보겠습니다:
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 값).
이러한 문제를 해결하기 위해 이름 매개변수를 사용할 수 있습니다. 방법은 다음과 같습니다:
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 함수 정의에서 이 값을 사용해야 합니다. (실제 매개변수 위치와 관계없음).
첫 번째 매개변수 문자는 프로그램에서 기본 값 '='을 사용합니다.