On Tuesday, 31 December 2013 at 12:55:59 UTC, Jacob Carlborg
wrote:
On 2013-12-31 13:42, Supernova wrote:
Why do associative arrays throw an Error (RangeError) on value
not found?
This seems like it would be inefficient to check for, so a
recoverable
Exception (ItemNotFoundException?) would seem to be more
appropriate.
How would ItemNotFoundException be any more efficient? The idea
is that the error should not be recoverable. If you get an
RangeError in your code you have made a logical error.
You need to explicitly check if a key is available in the
associative array before accessing it, something like this:
if (auto value = key in aa)
writefln("key %s was found with the value %s", key, value);
else
writefln("key %s was not found", key);
Doesn't that duplicate the work of discovering whether the key is
there or not? I guess it would depend on the implementation.