Menu
Coddy logo textTech

引数のデフォルト値

CoddyのDartジャーニー「基礎」セクションの一部 — レッスン 75/94。

デフォルトパラメータ値により、関数が呼び出される際に提供されていない関数パラメータに対してフォールバック値を指定できます。

デフォルトパラメータ値を持つ関数を作成する:

void greet(String name, [String greeting = 'Hello']) {
  print('$greeting, $name!');
}

オプションのパラメータを指定して、指定せずに関数を呼び出します:

void main() {
  greet('Dart');
  greet('Dart', 'Welcome');
}

上記のコードを実行した後、出力は次のようになります:

Hello, Dart!
Welcome, Dart!

名前付きパラメータにデフォルト値を使用することもできます:

void showInfo({required String name, int age = 30}) {
  print('$name is $age years old');
}

void main() {
  showInfo(name: 'Alex');
  showInfo(name: 'Maya', age: 25);
}

上記のコードを実行した後、出力は次のようになります:

Alex is 30 years old
Maya is 25 years old
challenge icon

チャレンジ

初心者

このチャレンジでは、Dartの関数でデフォルトパラメータ値を使用する練習をします。デフォルトパラメータ値により、関数を呼び出す際にパラメータが提供されていない場合に使用される値を指定できます。

greet 関数を完了させるために、greeting パラメータに "Hello" のデフォルト値を追加してください。

期待される出力:

Hello, Alice!
Welcome, Bob!

チートシート

デフォルトパラメータ値は、関数呼び出し時に提供されない場合の関数パラメータのフォールバック値を提供します。

オプションの位置パラメータの場合、デフォルト値付きの角括弧を使用します:

void greet(String name, [String greeting = 'Hello']) {
  print('$greeting, $name!');
}

greet('Dart');           // Hello, Dart!
greet('Dart', 'Welcome'); // Welcome, Dart!

名前付きパラメータの場合、デフォルト値を直接割り当てます:

void showInfo({required String name, int age = 30}) {
  print('$name is $age years old');
}

showInfo(name: 'Alex');              // Alex is 30 years old
showInfo(name: 'Maya', age: 25);     // Maya is 25 years old

自分で試してみよう

void main() {
  // これらの名前はすでにあなたのために定義されています
  String name1 = 'Alice';
  String name2 = 'Bob';
  
  // TODO: greet 関数を2回呼び出す:
  // 1. name1 だけを使って一度(デフォルトの挨拶を使用するはず)
  // 2. name2 と挨拶 "Welcome" を使って一度
  greet(name1);
  greet(name2, "Welcome");
}

// TODO: この関数を変更して、greeting パラメータに "Hello" のデフォルト値を追加する
void greet(String name, String greeting) {
  print('$greeting, $name!');
}
quiz icon腕試し

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

基礎のすべてのレッスン