DIP 1027---String Interpolation---Community Review Round 1

Nick Treleaven nick at geany.org
Mon Dec 16 14:00:36 UTC 2019


On Monday, 16 December 2019 at 13:22:45 UTC, Atila Neves wrote:
> On Monday, 16 December 2019 at 10:48:51 UTC, aliak wrote:
>> User: why can't I do this?/Why doesn't this work?
>>
>> string s = i"$var";
>>
>> Answer?
>
> import std.format: format;
> string s = format(i"$var");

That isn't an answer to the question, it's just a workaround. 
Interpolated strings could implicitly convert to strings, which 
is the most common use case in typical D code. That would not 
bloat code that doesn't need it, as Adam has shown by using an 
import inside a template.

Interpolated strings should not be designed with low-level 
concerns as the priority motivator at the cost of high level 
usability and safety.

D is supposed to be a type safe language, even std.format.format 
is not fully type safe because using string for a format string 
allows runtime errors.

Any good D interpolation proposal would support compile time 
checked format strings, even when runtime arguments are passed. D 
is supposed to be the best language for compile time stuff!


More information about the Digitalmars-d mailing list