Enumeratorクラスについて読んだことがあります。そして、私は完全にここで何が起こっているか理解することはできません。Ruby Enumeratorクラス
[0, 1].each { |i| puts i }
自体により、そこで問題は、我々は、配列のeach
方法にまたはのインスタンスにブロックをパス指定されていている=> #<Enumerator: [0, 1]:each>
を返し[0, 1].each
列挙子クラス?
Enumeratorクラスについて読んだことがあります。そして、私は完全にここで何が起こっているか理解することはできません。Ruby Enumeratorクラス
[0, 1].each { |i| puts i }
自体により、そこで問題は、我々は、配列のeach
方法にまたはのインスタンスにブロックをパス指定されていている=> #<Enumerator: [0, 1]:each>
を返し[0, 1].each
列挙子クラス?
他の多くのメソッドと同様に、ブロックが渡されない場合はEnumerator
が返されますが、ブロックが渡された場合は各項目のブロックが呼び出されます。
ブロックごとにブロックによって返される値は、ブロックが渡されたときにArray#each
によって返される配列の要素です。
あなたの質問に答えるために、ブロックとEnumerator
は決して会わなかった。
引数(ブロックを含む)をオブジェクトに渡すことはできません。引数(ブロックを含む)を取ることができるのは、メッセージ送信とブロックだけです。それで、明らかに、それは前者でなければなりません。