こんにちは。いせきです。もうすぐ新生活の時期ですね。どんな生活になるのかがとても楽しみと感じながらコードを書いています。疲れすぎない毎日を送りたいものですね。
今回は、関数の呼び出しについて記事を書いていきます。
はじめに
自作のWidgetがonTap
などのコールバックを受け取ることがあると思います。具体例としてはこちらです。
class SampleApp extends Stateless {
const SampleApp({
Key? key,
this.onPressed,
}) : super(key: key);
final void Function()? onPressed;
...
}
このような関数を作成したときに、2つほど書き方があります。
return ElevatedButton(
//1つ目の書き方
onPressed: () => onPressed?.call(),
//2つ目の書き方
onPressed: () {
if(onPressed != null) {
onPressed!();
}
},
child: Text('Tap'),
),
解説
一つ目の書き方について説明します。
onPressed: () => onPressed?.call(),
onPressed?
のあとにcall
をつけることでonPressed
がnullの場合は何もしないようにし、nullでなければ関数を呼び出すという仕組みがたった1行で書けるとても便利な書き方となっております。
とてもスッキリしていておすすめだと感じました!!
二つ目の書き方について説明します。
onPressed: () {
if(onPressed != null) {
onPressed!();
}
},
二つ目の書き方は、onPressed
の処理を呼び出す前にnullかどうかのチェックを行い、nullではない時に、処理を呼び出すやり方です。
個人的な意見としてはどちらも結果としては同じなのですが、一つ目の方が1行でかけてとてもスッキリしているためおすすめします。僕はこのことを最近まで知らなかったので、反省しております。。。