Я проходил упражнения в Ruby Koans, и меня поразила следующая рубиновая причуда, которую я нашел очень необъяснимым:
array = [:peanut, :butter, :and, :jelly]
array[0] #=> :peanut #OK!
array[0,1] #=> [:peanut] #OK!
array[0,2] #=> [:peanut, :butter] #OK!
array[0,0] #=> [] #OK!
array[2] #=> :and #OK!
array[2,2] #=> [:and, :jelly] #OK!
array[2,20] #=> [:and, :jelly] #OK!
array[4] #=> nil #OK!
array[4,0] #=> [] #HUH?? Why that?
array[4,100] #=> [] #Still HUH, but consistent with previous one
array[5] #=> nil #consistent with array[4] #=> nil
array[5,0] #=> nil #WOW. Now I don't understand anything anymore...
Итак, почему array[5,0]
не равно array[4,0]
? Есть ли какая-либо причина, по которой сортировка массива ведет себя странно, когда вы начинаете с позиции (длина + 1) th