我有一个带有自定义each方法的类:
class CurseArray < Array
def each_safe
each do |element|
unless element =~ /bad/
yield element
end
end
end
end
我想在这些迭代的元素上调用不同的代码块方法,如“collect”或“inject”。例如:
curse_array.each_safe.magic.collect {|element| "#{element} is a nice sentence."}
我知道有一个特定的函数(我在这里称之为“magic”)可以做到这一点,但我已经忘记了。请帮忙! :-)
=〜
和Regexp
是正确的,因为你可能想在黑名单中加入更多单词。@dominikh让each_safe
可以有或没有块的方法是一个好方法。 - James A. Roseneach_safe
之后但在使用枚举器之前修改了数组会发生什么?如果它是一段长文本,我们只需要first(3)
呢?请查看下面的 Sam 回答。 - Marc-André Lafortune