Flutterにおけるボタン(ElevatedButton)には、それを押したときにすることを書く場所である「onPressed」属性がありますが、
この「onPressed」属性を使う際には、ボタンを押したときにすること(呼び出し先の関数)に加えてその前に「() => 」を書く必要があります。
では、この「() =>」を忘れると何が起こるのでしょうか。
実は、この「() =>」を忘れると、「ボタンを押した時にすること(上の例では_onButtonPressedメソッド)」は、
- ボタンを押したときではなく、
- ボタンが描画されたとき(buildメソッドが回ったとき)
に発動されてしまいます。
これは意図していない動きなので困った事態なのですが、残念ながら日頃はとても賢いAndroid Studioくんも、これについては文法エラーを指摘してくれないというトラップ的な現象なので、注意が必要です。
ちなみに、この「onPressed」属性の正体は、VoidCallbackといって引数の無い関数となっていて、
「() =>」は、関数の設計図における引数部分(下の絵でいう③)になっているということは、
じつは、onPressed属性というのは、「名前の無い関数(無名関数)」であるということがわかります。
(詳しくは、以下の動画で解説していますので、よろしければご覧ください)