#3 Kotlin Koans Introduction/Default arguments 해설

1 소개



Kotlin 공식 레퍼런스의 Kotlin Koans/Default arguments의 해설 기사입니다.

Kotlin Koans를 통해 Kotlin을 배우는 사람들의 도움이 되길 바랍니다.

다만, 레퍼런스를 자력으로 읽는 힘을 기르고 싶은 분은,
곧이 기사를 보지 마십시오!

일단 각자 도전하고 나서 볼 수 있다고 생각합니다

2-1 Default 인수와 named 인수



#2 Kotlin Koans Introduction/Named arguments 해설 의 기사로 설명하고 있으므로, 봐 주세요.

2-2 toUpperCase()



오른쪽 본문에 나오는 toUpperCase() 함수를 Kotlin 공식 참조 에서 살펴보겠습니다.

fun String.toUpperCase(locale: Locale):String

Returns a copy of this string converted to upper case using the rules of the specified locale.

즉, String 형의 인스턴스가 toUpperCase() 함수를 호출하면(자), 인스턴스가 대문자가 되어 돌아온다.

그렇게 됩니다.

(※본 Koans 속에는, Boolean형의 파라미터로서도 toUpperCase가 나옵니다.)

3 Introduction/Default arguments 해설



Kotlin Koans Introduction/Default arguments 의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.

오른쪽의 본문을 보자.

There are several overloads of 'foo()' in Java:
public String foo(String name, int number, boolean toUpperCase) {
    return (toUpperCase ? name.toUpperCase() : name) + number;
}
public String foo(String name, int number) {
    return foo(name, number, false);
}
public String foo(String name, boolean toUpperCase) {
    return foo(name, 42, toUpperCase);
}
public String foo(String name) {
    return foo(name, 42);
}

All these Java overloads can be replaced with one function in Kotlin. Change the declaration of the function foo in a way that makes the code using foo compile. Use default and named arguments.

위의 네 가지 오버로드 된 foo () 함수 (Java에서 정의 됨)는 Kotlin을 사용하여 네 가지 함수의 기능을 하나의 함수로 결합 할 수 있습니다. default 인수, named 인수를 사용하여 foo() 함수를 정의하십시오.

같은 내용이 됩니다.

아래에서 구체적인 해설입니다.

첫째, 맨 위의 foo () 함수
toUpperCase ? name.toUpperCase() : name

는 toUpperCase가 true이면 name.toUpperCase()를 false이면 name을 값으로 지정한다는 의미입니다 (Java의 내용이므로 해설은 생략합니다.).

네 가지 foo() 함수를 살펴 보겠습니다.

아래 3종의 foo() 함수는 반환값 속에서 맨 위의 foo() 함수를 호출하고 있는 것을 알 수 있습니다.
(정확하게는 1번 아래의 foo() 함수는 아래에서 3번째의 foo() 함수를 사이에 두고 있습니다.)

이 때 아래의 3종 어느 foo() 함수를 호출했을 때에서도, 맨 위의 foo() 함수의 인수 number에 42를 인수 toUpperCase에 false를 건네주고 있습니다.

그리고, 맨 위의 foo() 함수가 toUpperCase의 진위치(true 또는 false)에 대응하는 값을 돌려주고 있습니다.

즉, foo() 함수의 호출은
인수 number와 toUpperCase에 값을 전달하지 않으면 기본적으로 42와 false가 전달됩니다.

「디폴트로 건네받는 인수가 정해져 있다면, 처음에 설정해 두자!」라고 하는 것으로,

Kotlin에서 foo() 함수를 다시 쓸 때 Default 인수를 사용하여

number : Int = 42,toUpperCase : Boolean = false 라고 덧붙이면 좋네요.

그렇게함으로써,
foo("a")
foo("b",number = 1)
foo("c",toUpperCase = true)
foo(name = "d",number = 2,toUpperCase = true)

어느 foo() 함수의 호출측에도 대응할 수 있습니다.

4 마지막으로



다음 번은 Kotlin Koans Introducion/Lambdas의 해설을합니다.

좋은 웹페이지 즐겨찾기