在Ruby Array类文档中,我经常发现:
如果没有给出块,则返回枚举器.
为什么我不通过一个块#map
?我的做法是什么:
[1,2,3,4].map
而不是做:
[1,2,3,4].map{ |e| e * 10 } # => [10, 20, 30, 40]
有人能告诉我一个使用这个枚举器的非常实用的例子吗?
好问题.
如果我们想要使用创建的枚举器做多个事情怎么办?我们现在不想处理它,因为这意味着我们可能需要稍后创建另一个?
my_enum = %w[now is the time for all good elves to get to work].map # => #<Enumerator: ["now", "is", "the", "time", "for", "all", "good", "elves", "to", "get", "to", "work"]:map> my_enum.each(&:upcase) # => ["NOW", "IS", "THE", "TIME", "FOR", "ALL", "GOOD", "ELVES", "TO", "GET", "TO", "WORK"] my_enum.each(&:capitalize) # => ["Now", "Is", "The", "Time", "For", "All", "Good", "Elves", "To", "Get", "To", "Work"]