On Wednesday, 10 September 2025 at 14:01:29 UTC, Brother Bill
wrote:
Page 119 of Programming in D
It seems odd that == null and is null have different values?
Is this a bug or feature?
If a feature, what is the meanings of == null vs. is null?
Feature. An AA has reference semantics. Removing all elements
does not set it to `null` (the `.init` value), because it is
already allocated, which may be useful for future operations.
Comparing for equality against null is true because both AA
references have no elements (null is a valid AA reference).
Comparing for identity is false because `null` has no AA
allocation whereas `dayNumbers` does - it isn't null.
https://dlang.org/spec/hash-map.html#construction_and_ref_semantic