When are associative arrays meant to throw a RangeError?
Jonathan M Davis
jmdavisProg at gmx.com
Sat Feb 18 13:56:27 PST 2012
On Saturday, February 18, 2012 21:54:52 Andrej Mitrovic wrote:
> Returning the default initializer of the value type when the key
> doesn't exist is a bad idea. Consider an integer, it's .init value is
> 0. If I want to check if a value of a key is zero I could easily end
> up with a silent bug:
>
> int[string] aa;
> aa["foobar"] = 5;
> if (aa["fobar"] == 0) { } // will always be true
> else { }
Agreed. The fact that C++ did something like this with std::map was one of its
big mistakes IMHO.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list