On Tuesday, 14 March 2023 at 18:41:50 UTC, Paul Backus wrote:
On Tuesday, 14 March 2023 at 08:21:00 UTC, amarillion wrote:
I'm trying to understand why this doesn't work. I don't really understand the error. If I interpret this correctly, it's missing a length attribute on a string, but shouldn't length be there?

By default, D's standard library treats a `string` as a range of Unicode code points (i.e., a range of `dchar`s), encoded in UTF-8. Because UTF-8 is a variable-length encoding, it's impossible to know how many code points there are in a `string` without iterating it--which means that, as far as the standard library is concerned, `string` does not have a valid `.length` property.


Thanks for the clear explanation! I was already aware that you could iterate by codepoint with foreach(dchar c; s), but it just didn't cross my mind that the same concept was playing a role here. I guess it's just one of those things that you just have to know.

regards,
Amarillion

Reply via email to