2017-10-21 27 views
0

我已阅读关于枚举类。我不能完全明白是怎么回事:Ruby Enumerator类

[0, 1].each { |i| puts i }

通过自身[0, 1].each返回=> #<Enumerator: [0, 1]:each>

所以,问题是我们是否寻路块阵列的each方法或的实例枚举类?

回答

3

和其他许多方法一样,Array#each返回和Enumerator如果一个块没有通过,但它遍历数组并为每个项目调用块,如果一个块被传递。

块返回的每个数组项的值是在块传递时由Array#each返回的数组元素。

要回答你的问题,该块和Enumerator从未见过。

0

您不能将参数(包括块)传递给对象。唯一可以带参数的东西(包括块)是消息发送和块。所以,显然,它必须是前者。