【Dart】クロージャ(無名関数)とは?

最終更新日

この記事では、クロージャ(無名関数)とは?についてまとめました。

基礎から実践までサンプルがあります。動かない場合はコメントください。

動かすにはDartpadを使用してください。

クロージャ(無名関数)とは

クロージャは、無名関数と呼ばれ関数とその関数が定義された状態をセットにした特殊なオブジェクトのことです。

サンプル

Function型

Function makeAdder(num addBy){
   return (num i) => addBy + i;
}

void main() {
   //変数add2に2を加えてる
   var add2 = makeAdder(2);
   //変数add4に4を加えてる
   var add4 = makeAdder(4);
   //変数add10に10を加えてる
   var add10 = makeAdder(10);
   
   print(add2(3)); //結果->5
   print(add4(3)); //結果->7
   print(add10(10)); //結果->10
}
Function greeting = (name) {
    return 'Hello, ${name}!';
  };

void main() {
 
  print(greeting('Dart'));
  print(greeting is Function);
}

その他のクロージャ

void main() {
  var list = ['apples', 'bananas', 'oranges'];
  list.forEach((item) {
    print('${list.indexOf(item)}: $item');
  });
}

fem