Почему не работает each_slice? - PullRequest
       34

Почему не работает each_slice?

1 голос
/ 19 февраля 2010

Я пытаюсь использовать Enumerable # each_slice. Это не работает на моем компьютере, заявив, что метод не найден.

Я использую ruby ​​1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

API: http://ruby -doc.org / core / classes / Enumerable.html # M003142

Пример:

(1..10).each_slice(3) {|a| p a} # I get NoMethodError: undefined method `each_slice' for 1..10:Range

Что я делаю не так?

Ответы [ 2 ]

7 голосов
/ 19 февраля 2010

В ruby ​​1.8.6 вы должны require 'enumerator' (который является частью stdlib и был объединен с ядром в 1.8.7+) перед использованием each_slice.

К сожалению, ruby-doc перечисляет методы, которые добавляются в базовые классы с помощью stdlib, не указывая, откуда эти методы.

1 голос
/ 19 февраля 2010

только что сравнил 1.8.6 с 1.9, и похоже, что

(1..10).respond_to? :each_slice

истинно в 1.9 и ложно в 1.8.6.Таким образом, документ, который вы используете, не для 1.8.6.если вы можете легко перейти на более новую версию Ruby, он должен предоставить вам этот метод в Range.

...