Ruby slicing not nil -


for four-element array, [4] returns nil, [4, 0] returns empty array.

array = [:peanut, :butter, :and, :jelly] array[4] # => nil  array[4, 0] # => []  array[5] # => nil  array[5, 0] # => nil  

why [4, 0] not return nil [5, 0]?

answer array slicing in ruby: looking explanation illogical behaviour (taken rubykoans.com) => graphical explination of whats happening

it's special case. official docs (the italics mine):

for start , range cases starting index before element. additionally, empty array returned when starting index element range @ end of array.

a = [ "a", "b", "c", "d", "e" ] # ... # special cases a[5]                   #=> nil a[6, 1]                #=> nil a[5, 1]                #=> [] 

Comments