Just another example of missing string interpolation
Andrea Fontana
nospam at example.org
Thu Oct 19 10:40:12 UTC 2023
On Thursday, 19 October 2023 at 07:51:38 UTC, Walter Bright wrote:
> On 10/19/2023 12:29 AM, Andrea Fontana wrote:
>>> > is prone to errors
>>
>> Well, you know, even you posted a wrong example earlier in the
>> thread.
>
> The error won't result in anything other than oops there's a
> format string in the output.
>
> If that's the only prone-ness to errors, it's doing very well.
>
>
>> I'm also somewhat concerned about potential error messages
>> that might confuse users due to the non-obvious abstraction:
>> f.e. what happens if someone writes ```myfunction(i"hello
>> $name!");```
>
> Do you mean someone accidentally prefixing with 'i'? How would
> that be any different from the other proposal?
Not by mistake, but intentionally because I want to pass a
formatted string to my function.
And if I'm not mistaken, that string will be expanded into a
tuple that could mess up the call to my function, returning an
error that might confuse the user. In the worst case, it could
call my function with extra parameters I didn't even expect,
causing some unexpected side-effects.
```
// This function delete all the file passed (just a joke)
void deleteFiles(string[]... files) { ... }
// Example
deleteFiles("/tmp/test.txt", "/tmp/old.txt");
deleteFiles(i"/tmp/$dirname/$file"); <-- ooops this will be
expanded?
```
More information about the Digitalmars-d
mailing list