ゼロは数値です。それは正確な数学的特性を備えた明確なものです。 (算術演算を行うことができます...)
NULLは、値がないことを意味します。テストする以外に何もできません。
空白は明確に定義されていません。それは、さまざまな人々にとってさまざまな文脈でさまざまなことを意味します。例:
- 誰かが長さゼロの文字列値を意味する可能性があります。つまり、文字が含まれていない値(
''
。 - 誰かが、印刷されない文字(スペース、タブなど)のみで構成されるゼロ以外の長さの文字列値を意味する可能性があります。または、1つのスペース文字だけで構成されている可能性があります。
- 一部のコンテキスト(文字と文字列が異なるタイプである場合)では、誰かが非印刷文字値を意味する場合があります。
- 誰かが「印刷または表示したときに表示されないもの」を意味することもあります。
重要なのは、「空白」には明確に定義された単一の意味がないということです。少なくとも(ネイティブの)英語のIT用語ではありません。おそらくそれを避けるのが最善です...他のIT専門家にあなたの意味を理解してもらいたい場合 。 (そして、他の誰かがその用語を使用していて、文脈から明らかでない場合は、それらが何を意味するのかを正確に言うように依頼してください!)
ZERO / NULL / BLANKがどのように表されるか、それらが占めるメモリの量などについて、一般的に意味のあることは何も言えません。私たちが言えることは、それらは互いに異なって表現されているということです....そして実際の表現は実装とコンテキストに依存します 。