How to add a character literal to a string without ~ operator?

Ferhat Kurtulmuş aferust at gmail.com
Thu Apr 4 19:56:50 UTC 2024


On Thursday, 4 April 2024 at 18:14:54 UTC, BoQsc wrote:
> I'm looking for more readable standard function to add a 
> **character** literal to a **string**.
>
> The `~` operator is clearly not great while reading a source 
> code.
> I'm not here to discuss that. I'm looking for a function inside 
> standard library.
>
> The function should be straightforward, up to two words.
>
> Here is what I expect from a programming language:
>
> Pseudo example:
> ```
> import std;
> void main(){
> 	string word = hello;
> 	join(word, 'f', " ", "World");
> 	writeln(word);   	// output: hellof World
> 	
> }
> 	
> ```

My favorite d feature is lazy ranges. No allocation here.

```
auto s = chain("as ", "df ", "j"); // s is lazy
writeln(s);
```

Of course you can allocate a new string from the chained range:
```
string str = cast(string)s.array.assumeUnique; // without a cast 
it is a dstring (why though?)
```



More information about the Digitalmars-d-learn mailing list