📌

[Flutter]コールバック関数についての個人的復習

2022/07/01に公開

非同期処理をやっていた時にコールバック関数について復習する機会があった。

コールバック関数の復習

コールバック関数とは、他の関数の引数に渡される関数のこと

分かりやすかった記事がこれ。

人間を関数だとすれば、ご飯に相当するものが引数です。
あと、ついでなので書いておくと、ウンチに相当するものは戻り値です。

この人間に「処理を記した紙」を渡す(渡す=引数)。この「処理を記した紙」こそ「コールバック関数」である。

その紙に書いた処理を行なった結果、出てきたものが「コールバック関数の戻り値」になる。

コールバック関数の引数としての型

  • 引数としての型は Function型
    以下がコードの例。重要なのは①〜③の部分
main.dart
void _countUp() {//①引数として渡す関数(上記の例で言うと「処理を書いた紙」にあたる)
 setState(() {
   _counter++;
 });
}

Widget addButton(Function function) {//②引数を受け取る関数(上の例で言うと「人間」にあたる)
 return FloatingActionButton(
   child: Icon(Icons.add),
   onPressed: () {
     function();
   },
 );
}

@override
Widget build(BuildContext context) {
 return Scaffold(
   appBar: AppBar(
     title: Text('コールバック変数'),
     centerTitle: true,
   ),
   body: Center(child: Text('$_counter', style: TextStyle(fontSize: 40.0),)),
   floatingActionButton: addButton(_countUp),//③ここで処理を実行する
 );                       //addButton関数の引数に_countUp関数を引数として渡している
}
GitHubで編集を提案

Discussion