On 17/09/2010 17:44, Andrei Alexandrescu wrote:
On 9/17/10 10:48 CDT, Michel Fortin wrote:
In my mind it's simpler to just explain the notion that an uninitialized
hash is null and detached from anything else until initialized. Objects
works like this (minus the implicit initialization part), so it
shouldn't be too hard to understand. Better have pragmatic semantics
that work rather than idealistic semantics that fail at a number of
cases.

That's a fair point.


Andrei

And perhaps even better would be to have the associative-arrays/hash-maps behave just like an object (and dynamic arrays), instead of being a covert pseudo-reference type that gets implicitly initialized. It is a more natural and consistent behavior.

The only claimed drawback is performance, but I'm having a hard time understanding what use case motivates this: why do we want lazy initialized hashmaps anyways? You only get a performance benefit in the cases where you end up using the hashmap but not require it to be initialized, and these cases seems fairly rare. I don't think they justify the current behavior. Can someone give me a code sample or scenario where hashmap lazy initialization would be better than the more orthogonal object-like approach I mentioned above?


--
Bruno Medeiros - Software Engineer

Reply via email to