Just another example of missing string interpolation
mw
m at g.c
Thu Oct 12 17:56:29 UTC 2023
On Thursday, 12 October 2023 at 13:39:46 UTC, Andrea Fontana
wrote:
> Real life example. Render a string like this:
>
> ```
> \x1b[2K\r\x1b[1mProgress:\x1b[0m 50% \x1b[1m\tSpeed:\x1b[0m
> 15.5 KB/s
> ```
>
> now (error prone and difficult to debug, try to code it!):
>
>
> ```
> stderr.write(format("%s\r%sProgress:%s %5.1f%% %s\tSpeed:%s
> %6.1f %s%s", clear, white, clear, progress, white, clear,
> curSpeed, unit));
> ```
>
> (or with string concat, good luck!)
>
> vs:
>
> ```
> stderr.write("${clear}\r{$white}Progress:${clear}${progress}%
> \t${white}Speed:${clear} ${curSpeed} ${unit}");
> ```
There are library solutions, e.g shameless self-plug:
https://code.dlang.org/packages/jdiutil
```
writeln(mixin(_S!"with var name: {i; d; thePoint}"));
```
output:
```
with var name: i=100 d=1.23457 thePoint=app.Point(_x=3
_y=0.456 _label=default value _counter=0)
```
More information about the Digitalmars-d
mailing list