파게로그

[Basic] Default arguments and Named arguments 본문

콤퓨타 왕기초/Kotlin

[Basic] Default arguments and Named arguments

파게 2021. 6. 9. 11:45

Default Arguments

Kotlin에서는 함수를 선언할 때 파라미터에 디폴트 값을 설정할 수 있다. 함수가 호출될 때 인수가 전달되면 이러한 인수가 파라미터로 사용되지만, 인수가 전달되지 않으면 디폴트 값이 사용된다. 구체적으로는 다음과 같이 경우를 나누어볼 수 있다.

 

🙂 All arguments are passed

fun main(args: Array<String>) {
    foo('y', 2)
}

fun foo(letter: Char = 'x', number: Int = 1) {
    // ...
}

이 때에는 모든 인수가 전달되었으므로 foo에서 letter는 'y', number는 2이다.


🙂 Not All arguments are passed

fun main(args: Array<String>) {
    foo('y')
}

fun foo(letter: Char = 'x', number: Int = 1) {
    // ...
}

오직 첫 번째의 인수만 전달되었으므로 foo에서 letter는 'y'를 사용하지만, number는 디폴트 값인 1이다.


🙂 No arguments is passed

fun main(args: Array<String>) {
    foo()
}

fun foo(letter: Char = 'x', number: Int = 1) {
    // ...
}

인수가 하나도 전달되지 않았으므로 foo에서 letter는 디폴트 값인 'x', number도 디폴트 값인 1이다.

 

Named Arguments

그런데 위와 같은 코드에서, 첫 번째 파라미터가 아닌 파라미터에 하나의 인수만 전달하는 것은 불가능하다. 이를 위해서 named argument가 필요하다. 이 때에는 인수의 순서가 중요하지 않다.

 

fun main(args: Array<String>) {
    foo(number = 2)
}

fun foo(letter: Char = 'x', number: Int = 1) {
    // ...
}

'콤퓨타 왕기초 > Kotlin' 카테고리의 다른 글

[OOP] OOP, Class and Objects  (0) 2021.06.10
[Basic] Tail Call, Tail Recursion  (0) 2021.06.10
[Basic] Infix Function Call  (0) 2021.06.09
[Basic] functions  (0) 2021.06.08
[Basic] for, while, iterate through range, break, continue  (0) 2021.06.08
Comments