DIP 1027---String Interpolation---Format Assessment
Petar
Petar
Thu Feb 27 08:27:44 UTC 2020
On Thursday, 27 February 2020 at 00:20:27 UTC, Walter Bright
wrote:
> On 2/26/2020 3:13 AM, Petar Kirov [ZombineDev] wrote:
>> In all other languages with string interpolation that I'm
>> familiar with, `a` is not passed to the `i` parameter.
>
> All rely on a garbage collected string being generated as an
> intermediate variable.
I'm well aware that allocation is inevitable if we want this
behavior. My argument is that this behavior is so ubiquitous that
not following it would be surprising to much more people, than if
D didn't follow C's Usual Arithmetic Conversions rules. For
example, Rust not following those conversion rules is considered
a good thing, while if D decided to be different than all other
languages w.r.t. string interpolation, most newcomers would
consider this a bad thing and not elegant and innovative as we
are aiming for.
I agree with Adam, Steven and others that string interpolation
expression should yield a distinct type and not a tuple. By doing
this we would be able to overload functions so they could accept
both strings (which would cause GC allocation when the argument
is a interpolated string), and the new distinct type, in which
case the allocation could be avoided.
More information about the Digitalmars-d-announce
mailing list