2017-10-21 34 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

您不能將參數(包括塊)傳遞給對象。唯一可以帶參數的東西(包括塊)是消息發送和塊。所以,顯然,它必須是前者。