Kotlin Koans 03 Default arguments


Default arguments (Playground)


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 関数の宣言を変更してください。デフォルト引数および名前付き引数 を使用してください。


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

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


名前付き引数と同様、Java にはない機能であり、とても便利。

← Blog