Generatorのサンプル

Generatorの例です。

by s_hiroshi

JavaScript

/*
 * ジェネレーターはfunction*とyieldキーワードを使った関数です。
 */

function* idMaker(){
  var index = 0;
  yield index++
  yield index++
  yield index++
}

function* idMakerAdvance(){
  var index = 0;
  while(true)
    yield index++;
}

var gen = idMaker();

console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // undefined
console.log(gen.next().value); // undefined
console.log(gen.next().value); // undefined

var genAdvance = idMakerAdvance();

console.log(genAdvance.next().value); // 0
console.log(genAdvance.next().value); // 1
console.log(genAdvance.next().value); // 2
console.log(genAdvance.next().value); // 3
console.log(genAdvance.next().value); // 4
console.log(genAdvance.next().value); // 5