Например:
a = [1,2,3,4,5]
a.delete_if { |x| x > 3 }
эквивалентно:
a = [1,2,3,4,5]
a.delete_if.each.each.each.each { |x| x > 3 }
Я знаю, что a.delete_if
возвращает перечислитель. Но как он узнает, что должен удалить объект, когда блок each
возвращает значение true? Как реализовать delete_if
вручную (и в Ruby)?
[1,2,3,4,5].delete_if.each.each.each.each { |x| x > 3 }
Не могли бы вы подробнее рассказать об этой строке? - person Matheus Moreira   schedule 07.10.2011delete_if.each
не совпадает сeach
? какdelete_if
запоминает, что ему делать? - person Lai Yu-Hsuan   schedule 07.10.2011