Flutterを学んでいると、最初に多くの人が戸惑うのが「関数に関数が入る」書き方です。特にUIを組む場面では、onPressed: () { ... }
のように、関数の引数に別の関数を渡すケースが頻繁に登場します。
バックエンドを何年かやっている人でも、list.map((e) => e.name).filter((e) => e.length > 2).toList()
というコードに馴染みがなかったり builder: (context, index) => ListTile(tittle: user[index])
で詰まります。なので、初めてのプログラミングがFlutterの場合、もっと理由がわからなくなるため、説明をしたいと思います。
関数に関数が入るコードが読めないのは、多くのコードが変数を関数に代入する書き方をしているためです。「無名関数」や「アロー関数」の記法は、パッと見ると何をしているか想像できないと思います。
申し訳ないけど、これらが読み解けるコツ、特にないです。慣れの問題です。私も何人かに丁寧に型定義から説明して、これは「E型の引数を取ってT型の値を返す関数が引数に入るよ(map関数)」と説明しても、呪文は呪文のままでした。読もうとするから。読んでもわかんないものは慣れるしかないです。コードをたくさん書いてください。
同様の問題はPythonのデコレータにも言えます。目で追うだけじゃ何も身につかないのは、世の常。書くことで咀嚼できるんですから、書いてください〜。