record: C# like records for D

Dylan Graham dylan.graham2000 at gmail.com
Thu Jul 15 10:46:05 UTC 2021


On Wednesday, 14 July 2021 at 23:16:05 UTC, Dylan Graham wrote:
> [DUB](https://code.dlang.org/packages/record)
> [Github](https://github.com/hmmdyl/record)

record now has support for custom default initialisers. Example:

```D
import drecord;

alias DefaultRecord = record!(
     // The third parameter is a lambda which provides default 
initialisation
     get!(int, "x", () => 4), // x is set to 4 by default
     get_set(Object, "o", () => new Object) // o is set to a new 
Object by default
);

auto r = new DefaultRecord; // run the default initialisers
writeln(r); // {x = 4, o = object.Object}

auto q = DefaultRecord.create!"x"(9); // run default 
initialisers, then set x to 9
writeln(r); // {x = 9, o = object.Object}
```



More information about the Digitalmars-d-announce mailing list