[phobos] UTF-8 string slicing
unDEFER
undefer at gmail.com
Fri Aug 19 03:07:53 PDT 2011
On Fri, 19 Aug 2011 06:53:37 +0400, Jonathan M Davis <jmdavisProg at gmx.com>
wrote:
> Hmmm. Such a function isn't entirely a bad idea, but it also makes me a
> bit
> nervous. Slicing is efficient. The slice function that you suggest is
> not. I
> mean, it's efficient enough for what it's doing, but it's not O(1) like
> slicing
> is, so having a slice function could be a bit misleading.
I know that it is not efficient, but here just appears the question why D
have decided not support 8-but encodings. Only its makes operations like
this efficient.
> Once drop has been merged in, you'll be able do to this
> auto s = takeExactly(drop(str, firstIndex), lastIndex - firstIndex));
> to get the same effect. It may be worth adding such a function though.
I'm sorry, but looks like there is no "drop()" function.
Anyway, thank you. I really don't understand how takeExactly works, but it
works. For newbies it is really not obvious that std.range works fine with
UTF-8 strings.
> Certainly
> auto s = slice(firstIndex, lastIndex);
> is cleaner. If we add it though, then we should probably give it a
> different name. Maybe sliceByElementType? That does seem a bit long
> though, if accurate.
In many other languages this function named as "subString".
> We'd probably put it in std.range though rather than std.utf, since it
> could
> be useful for any range which isn't actually sliceable. And then there's
> the
> question of whether it would be better to make it lazy. It would make it
> so
> that it wasn't actually a string anymore, but it would make it more
> efficient for all of the cases where you don't actually end up using the
> whole slice.
>
> You can make a pull request for it if you want to, and the best way to
> handle it - as well as whether we actually want such a function - can be
> discussed in the pull request. I do think that some thought is going to
> have to go into what behavior we really want such a function to have
> though (as well as the best name for it).
I'm not familiar with Git, but I'll try to think up anything.
--
registered Linux user #360474
Don't worry, I can read OpenOffice.org
More information about the phobos
mailing list