DIP 1027---String Interpolation---Community Review Round 1
Patrick Schluter
Patrick.Schluter at bbox.fr
Mon Dec 16 11:08:00 UTC 2019
On Monday, 16 December 2019 at 10:48:51 UTC, aliak wrote:
> On Monday, 16 December 2019 at 01:35:51 UTC, Walter Bright
> wrote:
>> On 12/15/2019 2:17 AM, Aliak wrote:
>>> To use it people will need to understand how to use d tuples
>>> as well.
>>
>> No, they don't.
>
> User: why can't I do this?/Why doesn't this work?
>
> string s = i"$var";
>
> Answer?
because
string s = ("%s",var);
is a syntax error. Even a beginning programmer can understand
that an interpolated string cannot be a pure simple string as it
contains symbols and expressions that are language construct not
part of the string literal, i.e. that the compiler has to perform
some transformations to substitute these language symbols into a
value.
Interpolated strings, in any language, are not string literals.
Each language resolves this fact in different manners and at
different times. Interpreted languages do it at runtime
(obviously), java like languages chose to do it at runtime. In a
language like D, which prefers resolving what is resolvable at
compile time, it would be loathed if it interpolation was
resolved at runtime (remember how long people were bitching about
runtime only format strings?)
Resolving interpolation at compile time is imho incompatible with
handling them as regular strings.
The question is then do we want CT or RT interpolated strings. RT
interpolated strings can still be provided by a library.
More information about the Digitalmars-d
mailing list