⁉️

null許容が苦手だった

2023/05/17に公開

とりあえず?つけてた

最近業務で、メソッドの引数にdouble型を渡すとエラーが出てきて、早く機能を実装したかったので、引数の値をString型にしたのですけど、これは実は良くなかったんですよね🙅
では、どうするのか?
if文と一時変数を使って対応しました。一時変数は、同じ名前の変数に変数代入するやつみたいです。
こんな感じですね。

final name = 'Jim';
name = 'Tom';

実際に業務で書いたコードはこれとは違いますけど、今回ポイントは、?をつけてnullが入る可能性がある型をNullable型(Null許容型)というそうで、 double? age; はそのままメソッドの引数に使おうとすると警告が出てきます!

型のエラーを消すには、先ほど説明したif文と一時変数を使いました。エラーの警告は出さないけど、nullだったら、使わせないとか対策が実際の開発では必要になります。Dartだけでコード書くので、書き方変わりますけど、if文で、nullだったら 早期return で処理を終わらせて、値が入っている nullが入らない型をNon-Nullable型(Null非許容型)と呼ぶそうですが、nullじゃなかったら、処理を実行させます。

nullのとき

変数に値がないので、 早期return で処理を終わらせてメソッドが実行されないのでログが表示されません。

nullじゃないとき

変数に値が入っているので、 早期return で処理が終わらずに、メソッドが実行されているので、ログが表示されています。

まとめ

今まで、一人で学習したり開発してたので、知らないことが多すぎて自分のコードいけてないなと気づきました😱
もっといいコードを書きたい!

Discussion