On 12/22/19 9:15 AM, Robert M. Münch wrote:
I want to do all the basics mutating things with strings: append, insert, replace

What is the D-ish way to do that since string is aliased to immutable(char)[]?

switch to using char[].

Unfortunately, there's a lot of code out there that accepts string instead of const(char)[], which is more usable.

I think many people don't realize the purpose of the string type. It's meant to be something that is heap-allocated (or as a global), and NEVER goes out of scope. Many things are shoehorned into string which shouldn't be.

Using arrays, using ~ operator, always copying, changing, combining my strings into a new one? Does it make sense to think about reducing GC pressure?

It really depends on your use cases. strings are great precisely because they don't change. slicing makes huge sense there.

I'm a bit lost in the possibilities and don't find any "that's the way to do it".

Again, use char[] if you are going to be rearranging strings. And you have to take care not to cheat and cast to string. Always use idup if you need one.

If you find Phobos functions that unnecessarily take string instead of const(char)[] please post to bugzilla.


Reply via email to