a function like writeln that returns a string rather than writes to a file
Ali Çehreli
acehreli at yahoo.com
Sat May 2 10:36:47 UTC 2020
On 5/1/20 7:40 PM, dan wrote:> On Saturday, 2 May 2020 at 02:29:43 UTC,
H. S. Teoh wrote:
>> On Sat, May 02, 2020 at 02:22:42AM +0000, dan via Digitalmars-d-learn
>> wrote:
>>> I'm looking for a function something like writeln or write, but
>>> instead of writing to stdout, it writes to a string and returns the
>>> string.
>> [...]
>>
>> import std.format : format;
>> string str = format("%s %s %s", obj1, obj2, obj3);
>>
>>
>> T
>
> Thanks HS!
>
> That looks like a good move, if format will do the string conversion for
> me.
>
> But one thing that would be troublesome is that i would have to make
> sure to count up the %s so that they match the number of arguments. I
> would like to do without that, just like writeln does.
If you can live with a mildly awkward way of passing it, format() can
take the format string at compile time as well:
string str = format!"%s %s %s"(obj1, obj2, obj3);
You get a compilation error if format specifications don't match the
arguments. (There are bug reports about that check but it mostly works
great.)
Ali
More information about the Digitalmars-d-learn
mailing list