При воссоздании модуля Enumerable для практики у меня есть #any
.Вызов метода внутри метода
def my_any?
everything = false
self.each do |item| #I switched this `each`. Originally, I had written `my_each`
everything = true if yield(item)
end
everything
end
Теперь, чтобы создать #none?
все, что я должен сделать это, не так ли?
def my_none?
!(my_any?)
end
Однако, когда я вызываю метод, я получаю сообщение об ошибке:
arr = [1,2,3]
arr.my_none?{|x| x>2}
LocalJumpError: no block given (yield)
я не могу запустить его .. дать полную реализацию –
Изменен его '# each', в отличие от моего собственного метода' # my_each'. Если это не сработает, я отправлю весь код. – funfuntime
Kevin, для 'my_any?', Рассмотрим удаление строк, начинающихся с 'all', и ставим' return true, если yield (item) 'в блоке и' false' между двумя 'end'. Для 'my_none?', Как @Max предлагает или возвращает 'false', если' yield (item) 'в блоке и' true' после. –