【发布时间】:2017-03-09 19:21:55
【问题描述】:
例如:
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 时,它怎么知道它应该删除对象呢?如何手动(以及在 Ruby 中)实现delete_if?
【问题讨论】:
-
[1,2,3,4,5].delete_if.each.each.each.each { |x| x > 3 }您能否详细说明这一行? -
为什么
delete_if.each和each不一样?delete_if怎么记得应该怎么做?
标签: ruby enumerator