【Flutter/Dart】関数の使い方|戻り値/キーワード引数/アロー関数

関数
目次

関数とは?

関数とは、機能を保管し再利用できるようにした部品のようなものです。関数に再度使用したいコードを保管しておき、必要となった時に関数を呼びだして保管しておいたコードを使用できます。

関数は大きく分けて2種類

  • void型関数(戻り値のない関数)
  • 戻り値のある関数

関数は大きく分けて2種類あり「void型関数(戻り値のない関数)」または「戻り値のある関数」に分けられます。

また、関数は別名「名前つき関数(named function)」と呼ばれ、関数とは別に「無名関数(anonymous function)」があります。この無名関数は、コールバック関数に使用します。

>>【Flutter/Dart】コールバック関数の使い方

戻り値 / return とは?

戻り値とは、関数の処理を終えた後に呼び出し元に返すvalue(データ)のことを呼びます。

例えば、フルーツバスケットに入っているリンゴを持ってきてくれるロボットがあるとします。ロボットを呼び出すと、リンゴを主人のところへ運ぶ処理をした後に、リンゴ(戻り値)を渡す(return)までの一連の処理が「戻り値のある関数」のイメージです。

この呼び出し元に値を返すことを「return」、返す値を「戻り値」と呼びます。

引数 / パラメータとは?

関数を定義する際、外部のvalue(データ)を関数に渡すことで、渡したvalueを関数内で使用できます。また、関数に渡すvalueを「引数」と呼び、関数を定義する際に使用する仮の引数を「パラメータ」と呼びます。

引数のある関数を分かりやすく例えると「渡した果物を切ってくれるロボット」を作る段階では何の果物が渡されるか分からないので、渡される果物を仮定する必要があります。この仮定した値がパラメータで、ロボットが出来上がった後に実際に渡す果物(りんごなど)が引数となります。

それでは、戻り値、引数、パラメータを理解した上で関数の使い方について解説していきます。

void型関数

void型

void型関数には「パラメータがない場合」と「パラメータがある場合」の2種類があります。それでは、それぞれの定義の仕方、呼び出し方を順に解説していきます。

定義(パラメータなし)

//定義
void 関数名(){
 (実行したい処理)
}
//例
main() {
  greeting(); //関数の呼び出し
}

void greeting() {
  print('Hello World');
}

//出力
//Hello world

void型関数を定義するには「関数名」と「関数を呼び出した際に実行する処理」を指定します。また「関数名()」で関数を呼び出します。

この例の場合、関数名を「greeting」とし、print関数で「Hello World」を出力するプログラムを定義しています。

定義(パラメータあり)

//定義
void 関数名(パラメータ) {
 (実行したい処理)
}
//例
main() {
  add(5, 10); //関数の呼び出し
}

void add(int num1, int num2) {
  int total = num1 + num2;
  print(total);
}

//出力
//15

パラメータがある場合、( )の中に関数で使用するパラメータを宣言します。宣言の仕方は変数と同じで、関数内でパラメータを変数と同じように扱えます。また、パラメータを複数使う場合は「,」で区切り、「関数名(引数)」で関数を呼び出します。

この例の場合、関数名を「add」とし、「num1」と「num2」をパラメータとして宣言しています。

>> 【Flutter/Dart】変数の種類と使い方|型と宣言

戻り値をもつ関数

戻り値

戻り値のある関数にも「パラメータがない場合」、「パラメータがある場合」の2種類があります。それでは、それぞれの定義の仕方、呼び出し方を順に解説していきます。

定義(パラメータなし)

//定義
戻り値の型 関数名(){
 (実行したい処理)
  return 戻り値;
}

//関数の呼び出し方 & 戻り値の受け取り方
戻り値の型 オブジェクト名 = 関数名();
//例)
main() {
  String hello = greeting(); //関数の呼び出し
  print(hello);
}

String greeting() {
  return 'Hello World';
}

//出力
//Hello World

戻り値のある関数を定義するには、関数名の前に戻り値の型を宣言します。また、戻り値を指定するために、戻り値の前に「return」を宣言します。

この例の場合、String型の「’Hello World’」を戻り値とした関数を定義しています。

定義(パラメータあり)

//定義
戻り値の型 関数名(パラメータ) {
 (実行したい処理)
  return 戻り値;
}

//関数の呼び出し方 & 戻り値の受け取り方
戻り値の型 オブジェクト名 = 関数名(引数);
//例)
main() {
  int total = add(5, 10);
  print(total);
}

int add(int num1, int num2) {
  int total = num1 + num2;
  return total;
}

//出力
//15

今まで説明したことを組み合わせただけなのでコードだけ載せておきます。

キーワード引数をもつ関数

キーワード引数とは、value単体を関数に渡す代わりに「パラメータと引数をセット」で渡す引数のことを呼びます。キーワード引数を関数に使うことで、引数の順序を変えたり、パラメータに初期値を与えたりできます。

定義

//定義
戻り値の型 関数名({パラメータ}) {
 (実行したい処理)
}

//キーワード引数の関数の呼び出し方
関数名(パラメータ:引数);
//例)
main() {
  add(num1: 5, num2: 10);
  add(num2: 1, num1: 2);
}

void add({int num1, int num2}) {
  int total = num1 + num2;
  print(total);
}

//出力
//15
//3

キーワード引数を使うには、パラメータを{ }で囲みます。また、パラメータの順序を変更できます。

パラメータに初期値を指定

//定義
戻り値の型 関数名({パラメータ = 初期値}) {
 (実行したい処理)
}
//例)
main() {
  add(num1: 5); //num1=5, num2=2
  add(num2: 10); //num1=1, num2=10
  add(); //num1=1, num2=2
}

void add({int num1=1, int num2=2}) {
  int total = num1 + num2;
  print(total);
}

//出力
//7
//11
//3

キーワード引数で、初期値を指定するには「=」でパラメータに初期値を代入します。

初期値を指定されたパラメータは関数を呼び出す際、引数を渡さなくても関数を実行できます。引数を渡さなかった場合は、パラメータで指定した初期値が関数で使用され、引数を渡した場合は引数の値が関数で使用されます。

アロー関数

アロー関数は、関数で定義したいコードを1行でまとめられる際に使用できます。

定義

//void型
void 関数名() => 実行したい処理;

//戻り値のある場合
戻り値の型 関数名() => 実行したい処理;
//例)
main() {
  greeting();
  int total = add(num1: 5, num2: 10);
  print(total);
}

void greeting() => print('Hello World');
int add({int num1, int num2}) => num1 + num2;

//出力
//Hello World
//15

アロー関数では、他の関数のように{ }の中に実行したいコードを書かずに、「=>」の後に実行したいコードを書きます。また、戻り値を返すのに「return」を宣言する必要はありません。

参考

よかったらシェアしてね!
目次
閉じる