Interpolated strings
Nick Treleaven via Digitalmars-d
digitalmars-d at puremagic.com
Fri Apr 21 07:36:41 PDT 2017
On Thursday, 20 April 2017 at 21:34:44 UTC, Steven Schveighoffer
wrote:
> Dmitry's solution is superior I think:
>
> $"{a} times 3 is {a * 3}"
>
> ->
>
> AliasSeq!(a, " times 3 is ", a * 3)
+1, this is more flexible.
> Would work fine with writeln.
Yep, and std.conv.text. We might want a function that takes the
quoted AliasSeq expansion and writes it to an output range.
> Would work fine with format.
No, std.format.format needs a format string as first argument,
supplying extra arguments will not work.
I like how this expansion *always* parses the string at
compile-time. The expansion could be passed whole as template
arguments if desired - I think this would allow text!(seq) which,
if passed only literal strings and runtime scalar types, can
return a fixed size static array, even though the scalar values
are read and formatted at runtime.
More information about the Digitalmars-d
mailing list