On 12 Aug 2011, at 01:07, 7stud -- wrote:

> viciousfish wrote in post #1016211:
> 
>> I am noodling with the Ruby Koans and I ran across an Array slice
>> behavior that I just can't quite wrap my brain around:
>> 
>> ruby-1.9.2-p180 :102 > array = [:peanut, :butter, :and, :jelly]
>> => [:peanut, :butter, :and, :jelly]
>> ruby-1.9.2-p180 :103 > array[4,0]
>> => []
>> ruby-1.9.2-p180 :104 > array[5,0]
>> => nil
>> 
>> from http://www.ruby-doc.org/core/classes/Array.html#M000267
>> "Returns nil if the index (or starting index) are out of range."
>> 
>> I don't understand why the 4th element is an empty array, whereas the
>> 5th element is out of range. I would expect the 4th element to be out
>> of range as 'array' contains elements 0-3.
> 
> Slices are different than single indexes: array[4, 0] and array[4] point 
> to two different spots in the array, and the spot array[4,0] points to 
> is just inbounds, while array[4] is out of bounds.  See here:
> 
> http://www.ruby-forum.com/topic/1393096

Thanks for the link -- a very useful explanation, and I'd somehow managed to 
miss this point despite years of Rubying!

I wonder if it might be worth a little patch to the Ruby API docs to clarify 
the semantics of array range access. May take this conversation to the Ruby 
list.

Chris

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to