📌
[Flutter]コールバック関数についての個人的復習
非同期処理をやっていた時にコールバック関数について復習する機会があった。
コールバック関数の復習
コールバック関数とは、他の関数の引数に渡される関数のこと
分かりやすかった記事がこれ。
人間を関数だとすれば、ご飯に相当するものが引数です。
あと、ついでなので書いておくと、ウンチに相当するものは戻り値です。
この人間に「処理を記した紙」を渡す(渡す=引数)。この「処理を記した紙」こそ「コールバック関数」である。
その紙に書いた処理を行なった結果、出てきたものが「コールバック関数の戻り値」になる。
コールバック関数の引数としての型
- 引数としての型は 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関数を引数として渡している
}
Discussion