gpt4 book ai didi

ruby - Ruby 中 Enumerator 类的用途是什么

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:10 25 4
gpt4 key购买 nike

如果我像这样创建一个枚举器:

enum = [1,2,3].each => #<Enumerator: [1, 2, 3]:each> 

enum 是枚举器。这个对象的目的是什么?我不能这样说:

enum { |i| puts i }

但我可以这样说:

enum.each { |i| puts i }

这似乎是多余的,因为 Enumerator 是用 .each 创建的。它似乎正在存储一些关于 each 方法的数据。

我不明白这是怎么回事。我确信我们有这个 Enumerator 类是有一些合乎逻辑的原因的,但是它能做什么而 Array 不能呢?我想也许它是 Array 和其他 Enumerable 的祖先,但它似乎不是。 Enumerator 类存在的确切原因是什么?它会在什么情况下使用?

最佳答案

如果你执行 enum = [1,2,3].each; 会发生什么?枚举.next?:

enum = [1,2,3].each
=> #<Enumerator: [1, 2, 3]:each>
enum.next
=> 1
enum.next
=> 2
enum.next
=> 3
enum.next
StopIteration: iteration reached an end

当您有一个进行计算的枚举器(例如素数计算器或斐波那契数列生成器)时,这会很有用。它为您编写代码的方式提供了灵 active 。

关于ruby - Ruby 中 Enumerator 类的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com