On 07/11/2016 02:02 AM, Bahman Movaqar wrote:
> I'm sure I'm missing something very simple but how can I create a string
> like "----" using `format`?

You can't.

> I check the docs on `format` and tried many variations including
> `format("%.*c\n", 4, '-')` but got nowhere.

What makes you expect that format should have that feature? :) Perhaps you're familiar with another language's standard library that does that?

> I'd appreciate any hint/help on this.

There are several ways of repeating characters and range elements in general:

void main() {
    // 'replicate' copies an array (which strings are) eagerly
    import std.array : replicate;
    assert("-".replicate(3) == "---");

    // 'repeat' repeats lazily
    import std.range : repeat;
    import std.algorithm : equal;
    assert('-'.repeat(3).equal("---"));

    // Another one that combines multiple range algorithms
    import std.range : iota;
    import std.algorithm : map;
    assert(7.iota.map!(i => i % 2 ? '=' : '-').equal("-=-=-=-"));

    // etc.
}

Ali

Reply via email to