Menu
Coddy logo textTech

名前付き引数

CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 58/93。

複数のパラメータを持つ関数を呼び出すとき、通常は定義されている順番どおりに引数を渡します。しかし、Kotlin にはよりすっきりした方法があります。それが名前付き引数です。

名前付き引数では、パラメーター名の後に = を付けて、各値がどのパラメーターに属するかを指定します。

fun createProfile(name: String, age: Int, city: String) {
    println("$name, $age, from $city")
}

fun main() {
    createProfile(name = "Alice", age = 25, city = "Paris")
}
// 出力: Alice, 25, from Paris

これにより、特に関数に同じ型のパラメータが複数ある場合、コードが読みやすくなります。次の2つの呼び出しを比較してください。

// 名前付き引数なし - これらの数字は何を意味するのか?
calculateArea(10, 5, 3)

// 名前付き引数あり - ずっと明確!
calculateArea(length = 10, width = 5, height = 3)

名前付き引数を使うと、好みの順序で値を渡すこともできます。

fun greet(firstName: String, lastName: String) {
    println("Hello, $firstName $lastName!")
}

fun main() {
    greet(lastName = "Smith", firstName = "John")
}
// 出力: Hello, John Smith!

位置引数と名前付き引数を混在させることはできますが、混乱を避けるため、名前付き引数を使用したら、その後に続くすべての引数も名前付きにする必要があります。

challenge icon

チャレンジ

中級

次の関数が与えられています。

fun formatBook(title: String, author: String, year: Int) {
    println("\"$title\" by $author ($year)")
}

3つの入力を読み取ります:書籍のタイトル(String)、著者名(String)、出版年(Int)。

名前付き引数を使用し、yeartitleauthorのこの順序でformatBook関数を呼び出します。

たとえば、入力が次の場合:

1984
George Orwell
1949

出力は次のようになります:

"1984" by George Orwell (1949)

自分で試してみよう

fun formatBook(title: String, author: String, year: Int) {
    println("\"$title\" by $author ($year)")
}

fun main() {
    val title = readLine()!!
    val author = readLine()!!
    val year = readLine()!!.toInt()
    
    // TODO: 名前付き引数を使って formatBook を次の順序で呼び出してください: year, title, author
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド