Kotlin Koans 03 Default arguments

目次

Default arguments (Playground)

Description

There are several overloads of 'foo()' in Java:

Javaで実装した foo() のオーバーロードがいくつかあります。

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.

Kotlinでは、これらを一つの関数に置き換えることができます。 foo を使用するコードがコンパイルできるように、 foo 関数の宣言を変更してください。デフォルト引数および名前付き引数 を使用してください。

Code

fun foo(name: String, number: Int = 42, toUpperCase: Boolean = false) =
        (if (toUpperCase) name.toUpperCase() else name) + number

fun useFoo() = listOf(
        foo("a"),
        foo("b", number = 1),
        foo("c", toUpperCase = true),
        foo(name = "d", number = 2, toUpperCase = true)
)

Memo


デフォルト引数は、オーバーロード数を減らし、コードの可読性を上げることができる。
名前付き引数と同様、Javaにはない機能であり、とても便利。

← Posts