On 2014-03-14 12:10 PM, Adam D. Ruppe wrote:
On Friday, 14 March 2014 at 16:06:17 UTC, bearophile wrote:
And double.init is a NaN.

Yes, and the reason for this is NaN is similar to null - an invalid
state, so it can help you to catch uninitialized variables.

You should explicitly initialize the variables normally and for the
cache case, either keep a separate variable to tell if it is initialized
(since NaN might be a valid cache state, like how an int may
legitimately be 0) or compare using std.math.isNaN.

The cache library stores serialized strings mostly, and returns an empty value if there's a get on an empty key (like redis), so I was surprised to see get("key").unpack!double == double.init == false even when they key doesn't exist.

So, I guess I'll have to modify msgpack-d to give doubles a 0.000 initialization value!

Reply via email to