Я пытался разработать свою структуру данных Array только для чтения, и мне очень нравится идея предоставления параметров обхода с помощью класса Enumerable, но я не могу найти требования к нему. В некоторых примерах, которые я смотрел, реализация C ищет метод #each
, но мне кажется, что этого может быть недостаточно.
Требования для включения Enumerable
Ответы (1)
Из кирки стр. 474, а также из основной документации:
Класс [смешанный с Enumerable] должен предоставлять метод
each
, который дает последовательные элементы коллекции. Если используютсяEnumerable#max
,min
,sort
илиsort_by
, объекты в коллекции также должны реализовывать осмысленный оператор<=>
, поскольку эти методы основаны на упорядочении элементов коллекции.
person
Wayne Conrad
schedule
20.01.2012
То же самое сказано в документации по ruby: ruby-doc.org/core-1.9.3 /Enumerable.html
- person Aliaksei Kliuchnikau; 20.01.2012
@Алекс, спасибо. Я добавил эту ссылку в ответ.
- person Wayne Conrad; 20.01.2012
Enumerable
— это модуль, а не класс. - person Frost   schedule 20.01.2012