lua-users home
lua-l archive

Re: string:sub

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 2010年3月06日 11:29:25 +1100
David Burgess <dabsoft@gmail.com> wrote:
> It seems to me that negative values of string.sub() are inconsistent 
> with not only the first parameter but also with string.find().
> 
> Examples:
> 
> >s="123456789"
> >=s:sub(-1)
> 9
> >=s:sub(1,0)
> 
> >=s:sub(1,-1)
> 123456789
> >=s:sub(1,-2)
> 12345678
> >=s:find("56")
> 5	6
> >=s:sub(1,6-2)
> 1234
> >=s:sub(-1)
> 9
> 
> I am boldly suggesting that the second parameter with negative indices 
> behave the same as the first.
That's what id does. (Unlike eg in python.) What do you mean?
> I guess this implies that the value 0 for
> the second parameter would return the length of the string.
So you wish to break the symetry between positive and negative indices?
This may make sense for half-open interval, where in fact s.sub(i,j) == s[i,j[.
> Maybe I have used too many similar functions in other languages but -1 
> meaning the last character seems intuitive to me.
-1 precisely points to the last character. s.sub(-1) == s.sub(#s)
So, what's wrong? (These points precisely are Lua features I'm very happy with :-)
Denis
-- 
________________________________
la vita e estrany
spir.wikidot.com

AltStyle によって変換されたページ (->オリジナル) /