デフォルト引数と名前付き引数

Kotlinの関数におけるデフォルト引数名前付き引数は、関数呼び出しの柔軟性と可読性を高める重要な機能です。それぞれの特徴を以下に詳しく説明します。


1. デフォルト引数(Default Arguments)

デフォルト引数とは、関数のパラメータに初期値を設定することで、呼び出し時にその引数を省略できるようにする機能です。

基本構文

kotlin
fun greet(name: String, greeting: String = "Hello") { println("$greeting, $name!") }

呼び出し例

kotlin
greet("Alice") // 出力: Hello, Alice! greet("Bob", "Hi") // 出力: Hi, Bob!

この例では、greeting"Hello" がデフォルトで設定されているため、省略しても問題ありません。

利点

  • 引数が多い関数でも、すべて指定しなくても済む。

  • オーバーロード関数(同名の引数違い関数)を減らせる。


2. 名前付き引数(Named Arguments)

名前付き引数とは、関数呼び出し時に、引数の順番に関係なく、引数名を明示して指定できる機能です。

基本構文

kotlin
fun greet(name: String, greeting: String) { println("$greeting, $name!") }

呼び出し例(名前付き)

kotlin
greet(name = "Charlie", greeting = "Good morning") greet(greeting = "Hi", name = "Diana") // 順番を変えてもOK

利点

  • 引数の意図が明確になり、読みやすさが向上する。

  • デフォルト引数と組み合わせることで、途中の引数だけを明示的に指定できる。


3. デフォルト引数と名前付き引数の組み合わせ

デフォルト引数と名前付き引数は、次のように組み合わせて使えます。

kotlin
fun registerUser(name: String, age: Int = 18, country: String = "Japan") { println("Name: $name, Age: $age, Country: $country") } registerUser("Eve") // Name: Eve, Age: 18, Country: Japan registerUser("Frank", country = "USA") // Name: Frank, Age: 18, Country: USA

このように、必要な引数だけを名前付きで指定できるため、柔軟でミスの少ない関数呼び出しが可能になります。


まとめ

機能 説明
デフォルト引数 関数定義時に引数に初期値を指定し、省略可能にする。
名前付き引数 関数呼び出し時に引数名を指定して、順番に関係なく値を渡せる。
両者の併用 必要な引数だけを明示的に渡し、その他はデフォルト値に任せられる。

必要であれば、オーバーロード関数よりもデフォルト引数と名前付き引数の方がKotlinらしい、簡潔で安全な書き方になります。

生成日:2025/05/04