✏️

Dart基礎2

2024/01/10に公開

はじめに

前回の続きです。今回は関数に関してまとめていきたいと思います。

関数の定義

関数は以下のようにして定義します。

<戻り値の型><関数名>([<引数の型><引数値>],[<引数の指定>]){
	return <戻り値>;
}

基本的な関数

以下に基本的な関数の定義例を記述しています。簡単な例として2つの数値を受け取って、その合計を返す関数を作成します。

int addNum(int num1, int num2) {
  return num1 + num2;
}

呼び出す時には以下のようにします。

var result = addNum(3, 9); // result = 12

デフォルト値をもたせる。

関数の引数が与えられなかった時にデフォルト値を持たせることができます。

int addNum(int num1, [int num2 = 10]) {
  return num1 + num2;
}

引数を一つしか渡さなかった場合にデフォルト値が使用されて、結果が返されます。

var result = addNum(3); // result = 13

名前付き引数

関数の引数を名前付き引数にすることも可能です。こうすることによって、引数の順序を入れ替えることができます。また名前付き引数が必須であればrequiredをつけます。

int addNum(int num1, {required int num2}){
   return num1 + num2;
}

呼び出す時には以下のようにします。

var result = addNum(3, num2:10); //result = 13

アロー関数

アロー関数とはコードをよりコンパクトに書くための方法です。関数の本体が1行で記述できる時に使用できます。アロー関数の場合は関数の戻り値の型は、式が返す値の型と一致していないといけません。

int addNum(int num1, int num2) => num1 + num2;

呼び出す時には以下のようにします

var result = addNum(3, 10); //result = 13

匿名関数

匿名関数とは名前のない関数のことです。変数に代入をしたり、他の関数に引数として渡したりする場合に使用されます。以下に数字のリストを作って、数字が偶数の時のみ出力する処理を作成します。

void main() {
  const numList = [3, 5, 10, 8];
  
  var numSelect = (num) {
    if (num % 2 == 0) {
      print(num);
    }
  };

  numList.forEach(numSelect);
}

以下の部分が匿名関数となります。

 var numSelect = (num) {
    if (num % 2 == 0) {
      print(num);
    }
  };

おわりに

最後まで読んでいただきありがとうございました。関数は使用することが多いので、しっかりと実際に手を動かしながら理解することが大事だと思います。また続きは改めて書いていきます。

参考文献

https://dart.dev/language/functions#anonymous-functions
https://www.darttutorial.org/dart-tutorial/dart-arrow-functions/

Discussion