std.string.indexOf with an optional start-at parameter?

spir denis.spir at gmail.com
Sun Apr 3 11:24:33 PDT 2011


On 04/03/2011 07:39 PM, Aleksandar Ružičić wrote:
> I needed std.string.indexOf to accept start position in the string to
> start the search at. I was really surprised when I realized that this
> (to me) standard parameter is "missing" (I'm used to indexOf in
> javascript, strpos in php and equivalent methods in other languages,
> which support start offset parameter).
>
> There might be some other function (in some other module) that does
> what I want but I wasn't able to find it (I find D's documentation not
> easy to search and read), so I've copied indexOf to my module and
> added wanted functionality:
>
> https://gist.github.com/900589
>
> now, I'm able to write, for example:
>
> auto pos = indexOf(haystack, '$', 10); // will starts search at 11th
> char in haystack
>
> and
>
> auto pos = indexOf(haystack, '$', -5); // will starts search at 5th
> char from the end
>
> My question is: is there a reason why there is no this functionality
> in phobos (maybe there's some language feature I'm not aware of?) and
> if no such reason exists, would it be possible to add it in future
> version of phobos/dmd?

Agreed this is a fairly standard param in other languages, but D easily (and 
rather cheaply) allows
     auto pos = indexOf(s[i..$], char);

I would be far more interested in generalised negative inices in D --à la 
Python. A great step for D's friendliness, and an final end to current '$' 
issues (1).

Denis

(1) Which works only for builtin type via compiler magic, because it neither 
maps to .length, nore is overloadable.
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d mailing list