頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

【プログラミング入門】NULL、0、undefined、空文字、半角スペースの違い

みなさんは、NULL、0、undefined、空文字、半角スペースの違いを理解してしますか?
この記事では、NULL、0、undefined、空文字、半角スペースの違いについて分かりやすく解説していきます。

まずは、この画像を使って解説していきます! f:id:shiakisudev:20191123233322p:plain

0(ゼロ)とは

f:id:shiakisudev:20191124003118j:plain

この画像を見ると、「トイレットペーパーの芯」がセットされています。
つまり、お尻を拭く紙がもう無くなった状況を表しています。紙が無いので「0」というわけです。

プログラム的に説明すると「トイレットペーパー」という変数が宣言されていて、「0」という値がセットされている。という意味になります。

Integer toiletPaper = 0; //紙は0(芯のみ)

トイレットペーパーは、m(メートル)で量ることが多いので、もし1mでも残っていれば以下のように記述できるでしょう。

Integer toiletPaper = 1; //1m分ある。

NULL(ヌル)とは

f:id:shiakisudev:20191124003133j:plain

この画像を見ると、芯すらもセットされていません。何もないのです。

これをプログラム的に説明すると「トイレットペーパー」という変数には値が何も代入されていないということになります。

Integer toiletPaper;   //何も代入されていない。

undefinedとは

f:id:shiakisudev:20191124003153j:plain

この画像を見ると、そもそも「トイレットペーパーホルダー」すらも設置されていません。
トイレットペーパーをセットしておく場所がそもそもないのです。
「undefined」は日本語で「未定義」と訳されます。
「トイレットペーパーをセットしておく場所が存在しない」=「置く場所が定義されていない」と解釈できます。

""(空文字)とは

空文字とは「長さが0の文字列」のことを指します。
String型など、文字列型の変数を扱うときにNULLではなく初期値を設定しておきたい場合などに使います。
NULLは先ほど説明したように「値が何も代入されていない状態」を指すので、文字列型の変数の値を明示的に初期化したいけど、具体的な値は入れたくない。という場合には、この空文字を使います。

" "(半角スペース)とは

実は半角スペースも「a」や「b」などと同じように文字の一種なのです。
半角スペースにも「a」や「b」と同じように文字コードが割り当てられています。
(ASCIIコードでいうと、aの文字コードは97、bの文字コードは98、半角スペースの文字コードは32になります。)
半角スペースは、人間の目には「何も映っていない」ように見えるだけで、コンピュータは「a」や「b」と同じように文字として解釈しています。

まとめ

- 同じ意味の類語
NULL --
0 --
空文字 ブランクともいう。
スペース 半角スペース、全角スペースが存在する。

実は、プログラミング言語やデータベースによってはNULL、0、空文字、半角スペースを厳密に区別するものもあれば、区別せず同じ判定結果を返すものもあります。
なので、自分が使うプログラミング言語やデータベースではどういう判定をしているのかを調べてみることが大事です。

今回は以上です。
お疲れさまでした。<( )>