【Flutter/Dart】位置引数で関数定義|オプション引数・デフォルト値を指定

今回は位置引数(Positional Parameter)でメソッドやコンストラクタの関数に引数を渡す方法を紹介します。

位置引数では関数を呼び出す際に指定された順番で渡す引数です。位置引数でも名前付き引数と同じように引数を省略したり、デフォルト値を指定したりできます。

\ 世界最大級のオンライン学習サービス /

目次

位置引数とは?

String message = say('Hello World', 'Alex');

位置引数とは上記コードのように指定された順番で値を渡す引数のことです。

引数を必要とする関数の基本形です。

位置引数による関数定義

String say(String msg, String from, String to) {
  var result = 'メッセージ:$msg';

  result = '$result, From $from';
  result = '$result, To $to';
  return result;
}

位置引数では関数のコンストラクタで渡す引数を順番に指定します。

上記コードでは関数を呼び出す際にパラメータmsgfromtoの順番で引数を渡す必要があります。

位置引数の関数の呼び出し

String message = say('Hello World', 'Alex', 'Brian');

関数で定義した順番で引数を渡します。

位置引数を省略可能(オプション引数)にする

String say(String msg, [String? from, String? to]) {
  var result = 'メッセージ:$msg';
  if (from != null) {
    result = '$result, From $from';
  }
  if (to != null) {
    result = '$result, To $to';
  }
  return result;
}

位置引数を省略可能な引数「オプション引数」にするには角括弧[]で囲みます。

デフォルト値を指定しない場合は引数の型に?をつけます。

オプション引数の関数の呼び出し

String m = say('Hello World');
String mf = say('Hello World', 'Alex');
String mft = say('Hello World', 'Alex', 'Brian');

オプション引数とした位置引数は上記コードのように省略できます。

デフォルト値を指定

void main() {
  String message = say('Hello World', 'Alex');
  print(message);
}

String say(String msg, [String from = '匿名', String to = '匿名']) {
  var result = 'メッセージ:$msg, From $from, To $to';
  return result;
}

//結果
//メッセージ:Hello World, From Alex, To 匿名

オプション引数にデフォルト値を指定する場合は=を使用します。

位置引数(オプション引数でない)にはデフォルト値を指定できません。

一緒に読みたい

参考

  • URLをコピーしました!
目次