1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Flutter]関数の呼び出しのあれこれ

Posted at

 
 

こんにちは。いせきです。もうすぐ新生活の時期ですね。どんな生活になるのかがとても楽しみと感じながらコードを書いています。疲れすぎない毎日を送りたいものですね。

今回は、関数の呼び出しについて記事を書いていきます。

はじめに

自作の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行でかけてとてもスッキリしているためおすすめします。僕はこのことを最近まで知らなかったので、反省しております。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?