LoginSignup
3
1

More than 1 year has passed since last update.

Dartのnull safetyのxxObj?.xxMethod()とxxObj!.xxMethod()の違いとは

Last updated at Posted at 2022-04-28

はじめに

Dartにnull safetyが導入されて、ちょっとめんどくさくなりましたね。
バグが減るのはいいんだけど、十分な品質のコードを書ける人には、やることが増えて困ったちゃん:smiling_imp:
まあ慣れれば大丈夫さ:sunglasses:品質も上がる。

表題の件を調べても、よくわからなかったので、実験して記事にしました。

結果

・xxObjがnullの時は!だとnull例外発生、?だとスルー(メソッドが呼ばれない)。
・xxObjがnullじゃない時は両方ちゃんと呼ばれる。

例外が出てほしくない時は?だね。こういうチェックはもう不要だね。

    if (mUserPlayer != null) {
      mUserPlayer?.next(true);
    }

ただ

    if (!mUserPlayer!.waitingTouch) {

waitingTouchがboolなんだけど、mUserPlayer?だとビルドできなかった。めんどくさいね。
混在するとちょっと気持ち悪いし。

最後に

Flutter始めましたー。
今回も手抜き。

3
1
1

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
3
1