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.

