On Saturday, 27 July 2013 at 12:52:11 UTC, monarch_dodra wrote:
And here is the second comment I wanted to put:

When parsing the options, you use an if-else. I don't know if its just me, but I find that using a switch is clearer (it's what you do in your second example). It also introduces string cases (illegal in C++), and labeled control statements.

The code becomes:

import std.stdio : writef, writeln;
void main(string[] args)
{
    assert(args.length);
    args = args[1 .. $];
    bool writeNewline = true;

    size_t i = 0;
    myForeach: foreach(arg; args)
    {
        switch(arg)
        {
            case "-n":
                writeNewline = false;
                ++i;
                break;

            default:
                break myForeach;
        }
    }
    args = args[i .. $];

    writef("%-(%s %)", args);
    if(writeNewline)
        writeln();
}

PS: If I figure out how to comment on your blog, I'll paste the comments there :)

thanks for the info on writef, I didn't realise it could do that.

About the switch statement: I didn't even know you could do that with labels, I'd only ever used them for gotos. I'll consider putting that in the next version.

Reply via email to