Null-aware operators について一つずつ事例を挙げて紹介していきます。
「??」「??=」に続き 3 件目は「x?.p」です。
「x?.p」といった記載をし、オブジェクト x が null でない場合のみプロパティ p を参照するという意味です。
Knight クラスのオブジェクト piece は null なので、そのプロパティである point を参照しようとすると普通は例外が発生してしまいますが、参照の際に「?.」を利用することで例外を回避することができます。
null の参照例外を回避できるというのは絶大で、この記載方法をスタンダードとしていくべきだと思います!
超主観ですが(笑)
次回は「x?.m()」を紹介します。
今回の記事を見ていたら想像できると思いますが、こちらも効果絶大!
プログラミング言語 Dart について色々と書いていきます。
これから Dart を学習する方にもわかりやすいように、できる限り細かく書くつもりです。
筆者自身が学習中の身ですので、誤りや指摘などありましたらコメント頂けると嬉しいです。
2015年10月27日火曜日
2015年10月25日日曜日
Null-aware operators : ??=
Null-aware operators について一つずつ事例を挙げて紹介していきます。
前回の「??」に続き 2 件目は「??=」です。
「A ??= B」といった記載をし、A が null の場合のみ B を実行するという意味です。
上記のとおり、「??=」の左辺が null の場合と、そうでない場合で振る舞いが異なります。
「??」に比べたら、まだ使うシーンはあるかもしれませんが、積極的に利用するかは???です。。。
次回は「x?.p」を紹介します。
次回あたりから使い勝手が良さそうなのが出てきますよ~
前回の「??」に続き 2 件目は「??=」です。
「A ??= B」といった記載をし、A が null の場合のみ B を実行するという意味です。
上記のとおり、「??=」の左辺が null の場合と、そうでない場合で振る舞いが異なります。
「??」に比べたら、まだ使うシーンはあるかもしれませんが、積極的に利用するかは???です。。。
次回は「x?.p」を紹介します。
次回あたりから使い勝手が良さそうなのが出てきますよ~
Null-aware operators : ??
前回の記事で取り上げた Null-aware operators について一つずつ事例を挙げて紹介していきます。
まず、1 件目は「??」です。
「A ?? B」といった記載をし、A が null でなければ A を、null の場合は B を実行するという意味です。
上記のとおり、変数 a と b が null であるので、 print 関数を実行すると c の文字列が表示されます。
個人的にはあまり利用シーンが浮かばなかったのですが、あればあるで良いといった感じでしょうか。。。
次回は「??=」を紹介します。
まず、1 件目は「??」です。
「A ?? B」といった記載をし、A が null でなければ A を、null の場合は B を実行するという意味です。
上記のとおり、変数 a と b が null であるので、 print 関数を実行すると c の文字列が表示されます。
個人的にはあまり利用シーンが浮かばなかったのですが、あればあるで良いといった感じでしょうか。。。
次回は「??=」を紹介します。
2015年10月4日日曜日
Null の扱い(Null-aware operators)
8/31 に Dart 1.12 がリリースされました。
(UP が遅くなってしまいました。。。)
今回のリリースで追加された機能の説明に入る前に次のコードをご覧ください。
多くの言語では null という概念に悩まされます。
上のコードでは toString() というモジュールを実行しようとしていますが、実行元のオブジェクトが null であるために例外が発生してしまいます。
#いわゆるヌルポ(NullPointerException)ですね
多くのプログラマは、この null を常に意識してコーディングせねばならず、他人の書いたモジュールの返り値に null が含まれるかどうかまで気にしないといけません。
今回の Dart のアップデートでこの null に対するわずらわしさを解消、とまではいきませんが、軽減するような機能が追加されました。
Null-aware operators です。
「Dart News & Updates」で紹介されていたコードをそのまま載せましたが、各演算子に「?」を付けることで null の可能性があるオブジェクトの扱いをシンプルにしてくれます。
toString() の前に「?」を付けることで、オブジェクトが null の場合でも例外を発生せず、後続へ流れます。
確かに便利だな~と思います。
Null-aware operators にはいろいろな種類がありますので、別の記事でまとめようと思います。
--- 参考もと
http://news.dartlang.org/2015/08/dart-112-released-with-null-aware.html
(UP が遅くなってしまいました。。。)
今回のリリースで追加された機能の説明に入る前に次のコードをご覧ください。
var isNull = null; isNull.toString();
多くの言語では null という概念に悩まされます。
上のコードでは toString() というモジュールを実行しようとしていますが、実行元のオブジェクトが null であるために例外が発生してしまいます。
#いわゆるヌルポ(NullPointerException)ですね
多くのプログラマは、この null を常に意識してコーディングせねばならず、他人の書いたモジュールの返り値に null が含まれるかどうかまで気にしないといけません。
今回の Dart のアップデートでこの null に対するわずらわしさを解消、とまではいきませんが、軽減するような機能が追加されました。
Null-aware operators です。
「Dart News & Updates」で紹介されていたコードをそのまま載せましたが、各演算子に「?」を付けることで null の可能性があるオブジェクトの扱いをシンプルにしてくれます。
var isNull = null; isNull?.toString();
toString() の前に「?」を付けることで、オブジェクトが null の場合でも例外を発生せず、後続へ流れます。
確かに便利だな~と思います。
Null-aware operators にはいろいろな種類がありますので、別の記事でまとめようと思います。
--- 参考もと
http://news.dartlang.org/2015/08/dart-112-released-with-null-aware.html
登録:
投稿 (Atom)