ジェネレータ関数の定義方法は簡単です。以下のようにfunction*
キーワードを使用して関数を定義し、yield
キーワードを使用して値を返します。
function* myGenerator() {
yield '値1';
yield '値2';
yield '値3';
}
ジェネレータ関数を呼び出すと、イテレータオブジェクトが返されます。このオブジェクトを通じて、next()
メソッドを使用してジェネレータ関数内の値にアクセスできます。
const generator = myGenerator();
console.log(generator.next().value); // 出力: '値1'
console.log(generator.next().value); // 出力: '値2'
console.log(generator.next().value); // 出力: '値3'
ジェネレータ関数は、複雑な制御フローを持つ場合や、大量のデータセットを処理する場合に特に有用です。以下に、ジェネレータ関数を使用して数列を生成する例を示します。
function* fibonacci() {
let previous = 0;
let current = 1;
while (true) {
yield current;
const next = previous + current;
previous = current;
current = next;
}
}
const sequence = fibonacci();
for (let i = 0; i < 10; i++) {
console.log(sequence.next().value);
}
上記のコードでは、フィボナッチ数列を生成するためにジェネレータ関数を使用しています。
ジェネレータ関数を使うことで、コードがシンプルで読みやすくなり、メモリ使用量も最適化されます。また、非同期処理やデータの遅延読み込みにも応用することができます。
以上が、JavaScriptでのジェネレータ関数の使用方法とコード例の紹介です。ジェネレータ関数は、柔軟性と効率性を兼ね備えた強力な機能ですので、ぜひ活用してみてください。