Если бы в Ruby я перебрал коллекцию, сколько раз Ruby оценил бы перечисленную коллекцию?
В частности, я бы хотел отсортировать коллекцию и перебрать отсортированную коллекцию. Так как мне не нужно хранить копию отсортированной коллекции, я решил написать цикл так:
for item in @items.sort{ |a,b| b.created_at <=> a.created_at } do
#do some stuff
end
Однако, после создания этого прекрасного фрагмента кода, я начал задаваться вопросом, сколько раз я мог на самом деле вызывать sort.
Действительно ли вышеприведенная строка отсортирует коллекцию только один раз? Или Руби закончит сортировку N раз для каждого элемента в коллекции?