2017年2月28日火曜日

プログラミング初心者がつまづきやすい0とnullの違いを「トイレットペーパーで」解説した画像が見事 - ねとらぼ

プログラミング初心者がつまづきやすい0とnullの違いを「トイレットペーパーで」解説した画像が見事 - ねとらぼ:

 今回は、初心者プログラマーが最初にパニックに陥ってしまうと言われる、あの恐ろしい「ぬるぽ」のナゾを理解するため、0とnullの違いを的確に表した画像(↓)が紹介されていたので、そんな話題を。画像は元記事から転載させていただきましたが、オリジナルはR SATO(佐藤 玲)(@raysato)さんのツイートです。


 この画像の左が0、右がnullを表しているそうです。左側の0は、トイレットペーパーの芯だけ残された状態なので、入れ物はあるけど中身が空っぽというような状態、つまりプログラム的には0に対応します。一方で、右側はトイレットペーパーの芯すらない、入れ物がないのでそもそも中に物を入れようがない状態で、プログラム的にはnullを表すというのです。

 例えば、トイレットペーパーが喋ることができるという架空の世界があったとして(そんなもんないですけど)、左側に対して「残りの長さは?」と聞けば、おそらく「0」と答えてくれるでしょう。しかし、右側は聞く相手のトイレットペーパーがそもそもないので、「残りの長さは?」という問いは完全に『独り言』になります。日常生活で、いると思っていた人に話しかけたら、相手がいつの間にかいなくなっていて自分の言葉が『独り言』になってしまった気まずい経験は誰しもあると思います。ところが、日常の世界では単に気まずいだけで、「残りの長さは? .... っと、あれ?どこ行ったんだろう?」と頭を掻くだけでいいのですが、プログラムの世界で『独り言』をやってしまうと、何とあの恐ろしい「ぬるぽ」、つまり「NullPointerException」というプログラムエラーになってしまうのです。そう、この記事の最初に出していた「ぬるぽ」は、話しかけた相手がいなかった時に起きるエラー「NullPointerException(ヌルポインター例外)」のことで、中級以上のプログラマーたちは愛情を持って「ぬるぽ」と呼んでいます。

 この画像は確かに0とnullの違いを的確に表している気もしますが、どっちにしてもトイレットペーパーがないことには変わらないので、この画像を撮影した人はかなりのピンチに陥っていたはず。そんな人生のピンチの最中に、冷静に「これは0とnullの違いだ」なんて写真におさめるのは、R SATO(佐藤 玲)(@raysato)さん、よほど度胸の座った人かもしれませんね。

ブログランキングに参加しています。よろしければポチッとご協力をお願いします
にほんブログ村 ソフトウェア

0 件のコメント:

コメントを投稿