Getting nice print of struct for debugging

Martin Tschierschke via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Feb 20 08:30:15 PST 2017


On Monday, 20 February 2017 at 16:18:58 UTC, Paul Backus wrote:
> On Monday, 20 February 2017 at 16:04:17 UTC, Martin 
> Tschierschke wrote:
>> Hello,
>> I have a little program where I am filling a struct with 
>> values from an regex match.
>> Now I want to display the content of the struct for debugging 
>> purpose.
>
> I believe the easiest way to do this is to define a custom 
> toString member function for your struct. For example:
>
> struct MyStruct {
>     int x;
>     double y;
>     string s;
>
>     string toString() {
>         import std.format: format;
>
>         return "MyStruct(x: %d, y: %f, s: \"%s\")".format(x, y, 
> s);
>     }
> }
>
> void main() {
>     import std.stdio: writeln;
>
>     MyStruct foo;
>     foo.x =2; foo.y = 3.14; foo.s = "the quick brown fox";
>
>     writeln(foo); // Prints MyStruct(x: 2, y: 3.140000, s: "the 
> quick brown fox")
> }
Good suggestion, thank you! Then the definition is near the 
struct definition and I do not need to care about what to call, 
just writeln(myvar); cool!




More information about the Digitalmars-d-learn mailing list