このページには広告が含まれる場合があります。
Dartを使っていると、「empty」(空)と「null」(存在しない)っていう用語が出てくるんですが、これが意外と混同しがちです。
結論から言うと:
- null → そもそも「家」が存在しない状態
- empty → 家はあるけど「中身」が空っぽの状態
となります。
「null」の状態とは?
まずは「null」から。
Dartでリストを宣言するとき、次のようなコードを書くことがあります:
List<int>? numbers;
この場合、「numbers」 というリストは null の可能性があります。
つまり、「リスト自体が存在していない状態」 です。
イメージとしては、「家そのものが存在していない」 感じです。
番地(住所)を探しに行っても、そもそもその場所には何もない。建物自体がないんだから、当然中身もないわけです。
「empty」の状態とは?
一方、次のようにリストを初期化するとどうでしょう?
List<int> numbers = [];
この場合、リストは存在していますよね。
でも中身は 「空っぽ」 です。
これは、「家はあるけど、家具とかが一切ない状態」に似ています。
家(リスト)は存在しているけど、誰も住んでいないし、何も置いていない。
つまり、
- null → 空き地(建物が存在しない)
- empty → 空き家(建物はあるけど中身が空っぽ)
となるわけです。
(詳しくは、以下の動画で説明していますので、よろしければご覧ください)