On Sunday, 30 October 2016 at 20:50:47 UTC, Alfred Newman wrote:
Hello,

I'm migrating some Python code to D, but I stuck at a dead end...

Sorry to provide some .py lines over here, but I got some doubts about the best (fastest) way to do that in D.

The "splitter" generic function sounds like what you want. The basic versions use a fixed separator, but you can make more complex separators using either the regex version, or the function version. The function version is simplest for what you're doing. Check out the first example here:
https://dlang.org/phobos/std_algorithm_iteration.html#.splitter.3

(You'd use "among" instead of plain ==)

Also check out "walkLength" for getting the number of tokens.

However, if you really care about speed, I suggest changing the API. With your API, if you want to get multiple tokens from a string, you have to split the string every single time. Why not just return the full range? You can use "array" to return a proper array instead of an ad hoc range struct.

Reply via email to