ジェネレータで "return"のセマンティクスを理解することに問題があります。私はそれを最終的な、それ故に最後の価値として理解した。ジェネレータの戻り値のセマンティクス
function* gen() {
yield "foo";
return "bar";
}
for (const x of gen()) {
console.log(x);
}
この例では、「bar」ではなく「foo」のみが表示されます。
EDIT:
は、構文「のために」と「真=済」イテレータの戻り値を取得する方法はありますか、それは常に迷子のでしょうか?
'yield yield * gen()'を実行できませんでしたか? –
@ JonasW。 1つは可能ですが、私はそれをお勧めしません。戻り値は、通常、返される値とは大きく異なります。コレクションの一部ではありません。 'gen'の作者がそこに置かなかった場合、彼はおそらくそれには正当な理由があったでしょう。より良い例で答えを更新しました。 – Bergi
これは適切なプログラミングだとは思わない...これはちょうどハックです。適切な言語のアルゴリズムでこれを必要とすべきではありません。 – Redu