Just Another Victim of the Ambient Morality wrote:
> "David A. Black" <dblack / rubypal.com> wrote in message 
> news:alpine.LFD.2.00.0910300803050.7908 / rubypal.com...
>> On Fri, 30 Oct 2009, Bertram Scharpf wrote:
>>> Am Freitag, 30. Okt 2009, 13:25:05 +0900 schrieb Michael W. Ryder:
>>>> Michael W. Ryder wrote:
>>>>> Just Another Victim of the Ambient Morality wrote:
>>>>>>     I'm actually hoping this is an embarrassing question but how do 
>>>>>> you
>>>>>> get the tail end of a string?  All I've figured out is this:
>>>>>>
>>>>>> index = 4
>>>>>> string[index, string.size - index]
>>>>>>
>>>>>>     ...but surely there's a better way.
>>>>>>
>>>>> You mean like string[-1]?
>>>> I'm sorry, I missed the part about the index number of characters.  Try
>>>> string[-index, index].
>>> That's really ugly. You shouldn't have to mention `index' twice.
>> I don't think there's anything wrong with it. It works well, and
>> there's nothing stylistically wrong with using a local variable twice.
>> If index is a method that does a (re)calculation every time, you'd
>> want to cache it, but that's not the case in the example.
> 
>     There's nothing wrong with it other than it doesn't work.  


What method doesn't work?  If you mean the string[-index, index] method 
it does work fine for me.  I am using 1.9.1 if that makes any 
difference.  The string[-index..-1] method does the same thing but I 
have used Business Basic for over 20 years so my method was easier for me.


As others
> have pointed out, it's:
> 
> string[-index..-1]
> 
>     However, I'm more concerned with your general attitude about language 
> structure.  Even if it did work, you can say the same thing for my original 
> solution:
> 
> string[index, string.size - index]
> 
>     It works well... except that it uses both index _and_ string variables 
> twice.
>     Am Freitag is right.  It would be better if there were some method of 
> getting the tail end of a string by only mentioning the needed parameters 
> once.  I'm very surprised that Ruby does not have this level of 
> expressiveness... 
> 
>