D JSON (WAT?!)
H. S. Teoh via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 24 09:00:32 PDT 2014
On Thu, Jul 24, 2014 at 03:54:20PM +0000, Pavel via Digitalmars-d-learn wrote:
[...]
> Guess what, here's a new snippet:
>
> import std.stdio;
> import std.json;
>
> void main() {
> scope(failure) writeln("FaILED!!");
> string jsonStr = `{ "name": "1", "type": "r" }`;
> auto parsed = parseJSON(jsonStr).object;
> writeln("fail" in parsed);
> }
>
> Output is:
> null
>
> WAT?!
>
> Ofcourse, writing like:
>
> writeln(cast(bool)("fail" in parsed));
>
> Produces "false"... but why on earth boolean expression would output null?
It's not a boolean expression. The 'in' operator returns a pointer.
Rationale: avoid double lookups, for example:
if (auto ptr = "key" in assocArray) {
doSomething(*ptr);
}
T
--
The right half of the brain controls the left half of the body. This means that only left-handed people are in their right mind. -- Manoj Srivastava
More information about the Digitalmars-d-learn
mailing list