MDN のイテレータに関する章を参照してくださいhttps://developer.mozilla.org...ジェネレータ式
その後、自分で練習して問題を見つけます。
コードは比較的単純ですが、私が聞きたいのは、2 番目のメソッドで add() メソッドを割り当てないと、反復を生成できないのはなぜかということです。私の理解によれば、この例の add(3,5) はそれに相当しますが、結果は明らかにそうではありません。
ringa_lee
Iteratorのトラバース処理はこんな感じです。
(1) 現在のデータ構造の開始位置を指すポインター オブジェクトを作成します。言い換えれば、トラバーサー オブジェクトは本質的にはポインター オブジェクトです。
(2) ポインター オブジェクトの next メソッドを初めて呼び出すときに、ポインターをデータ構造の最初のメンバーに指すことができます。
(3) ポインター オブジェクトの next メソッドが 2 回目に呼び出されるとき、ポインターはデータ構造の 2 番目のメンバーを指します。
(4) データ構造の終端を指すまで、ポインター オブジェクトの next メソッドを呼び出し続けます。
add を実行するたびに オブジェクトが取得されます。これらのオブジェクトにはそれぞれ独立した電流があります。したがって、 it = add() 和多次 add() 1 回は同等ではありません。
it = add()
add()
Iteratorのトラバース処理はこんな感じです。
(1) 現在のデータ構造の開始位置を指すポインター オブジェクトを作成します。言い換えれば、トラバーサー オブジェクトは本質的にはポインター オブジェクトです。
(2) ポインター オブジェクトの next メソッドを初めて呼び出すときに、ポインターをデータ構造の最初のメンバーに指すことができます。
(3) ポインター オブジェクトの next メソッドが 2 回目に呼び出されるとき、ポインターはデータ構造の 2 番目のメンバーを指します。
(4) データ構造の終端を指すまで、ポインター オブジェクトの next メソッドを呼び出し続けます。
add を実行するたびに オブジェクトが取得されます。これらのオブジェクトにはそれぞれ独立した電流があります。したがって、
リーリーit = add()
和多次add()
1 回は同等ではありません。