2017-10-21 4 views
0

Enumeratorクラスについて読んだことがあります。そして、私は完全にここで何が起こっているか理解することはできません。Ruby Enumeratorクラス

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

自体により、そこで問題は、我々は、配列のeach方法にまたはのインスタンスにブロックをパス指定されていている=> #<Enumerator: [0, 1]:each>

を返し[0, 1].each列挙子クラス?

答えて

3

他の多くのメソッドと同様に、ブロックが渡されない場合はEnumeratorが返されますが、ブロックが渡された場合は各項目のブロックが呼び出されます。

ブロックごとにブロックによって返される値は、ブロックが渡されたときにArray#eachによって返される配列の要素です。

あなたの質問に答えるために、ブロックとEnumeratorは決して会わなかった。

0

引数(ブロックを含む)をオブジェクトに渡すことはできません。引数(ブロックを含む)を取ることができるのは、メッセージ送信とブロックだけです。それで、明らかに、それは前者でなければなりません。