Denis Shelomovskij wrote:
A shorter variant: --- void delegate(string, string)[string] dgs = [ "name" : (key, value) { d.name = value; }, "phone": (key, value) { d.phone = value; }, "age" : (key, value) { d.age = to!int(value); }, ... // whole bunch of other stuff to // parse different attributes ];
That's a pretty slick example of D's type inference. This example is worthy of a reference in the docs somewhere, IMO. Although, written to use UFCS of course:
auto m = line.match("(\w+)\s+(\w+)"); ... "age" : (key, value) { d.age = value.to!int(); } :D gotta love UFCS!