この記事は「Elixir Advent Calendar 2023」20日目の記事です
東京にいるけどfukuokaexのYOSUKEです。
普段は 合同会社TheWaggle で教材開発・システム開発・研修講師などマルチに活動してます。
このシリーズでは、文系ですらない、体育会系でも始められるプログラミング学習 というテーマで元自衛官だった僕が
自衛官からエンジニアになってもらいたいという気持ちを込めて、普段は大人しいですが、このコラムシリーズでは、あえて、体育会系のノリで、貴様ら理屈で覚えるなら体で覚えろ!というノリで書いてみたいと思います。
なので、初学者向けですが、理論は後回し、まずは動かして体感しろってノリの第20回目です。
それでは、いくぞ!
nilとは貴様らの頭のことだ!
よーし、今回は前回までifによる判定とそれに伴い学んだtrue,falseについて学習してきたが、今回はnilについてだ。
nilとは何か?
nilはElixirで「何もない」、「空」、「値が存在しない」ことを示す特別な値だ。他の多くのプログラミング言語で見られるnullやNoneに相当する。nilは何かが欠けている、あるいは未定義であることを表すために使われる。
要するに、貴様らのように何も考えてない頭と同じだ!その空っぽの頭の中にわかるように説明してやるからありがたく思え!
例えば、ある関数が値を返さない場合、その返り値はnilになることがある。また、存在しない辞書のキーを参照した時にも、nilが返される。
map = %{a: 1, b: 2}
IO.inspect Map.get(map, :c) # :cは存在しないため、nilが返される
Elixirにおけるnilの特徴
Elixirでは、nilは偽(false)と見なされる。つまり、if文などの条件判定でnilが使われた場合、それは偽として扱われる。これはfalseと同様に動作する。
if nil do
# このブロックは実行されない
else
# このブロックは実行される
end
この例では、条件がnilなので、ifブロックはスキップされ、elseブロックが実行される。
注目! これよりnilの注意点を説明する
nilは特別な値で、何かが欠けているか、未定義であることを示す。しかし、これをエラーと混同してはならない。nilが返されることは、しばしば正常な動作の一部である。貴様らにはまだ、エラーハンドリングは教えてないが、この先教えるので覚えておけ!エラーハンドリングと混同しないようにしろ!
さて、nilの基本はこれで理解したな。貴様らのコードにおいてnilを適切に扱えるようなれ。理解したか?
それでは 次回 Part21でまた会おう!