296.84K
Category: programmingprogramming

Генераторы

1.

Генераторы

2.

Генераторы
Обычные функции возвращают только одно-единственное значение (или
ничего).
Генераторы могут возвращать (yield) множество значений одно за
другим, по мере необходимости. Генераторы работают с перебираемыми
объектами и позволяют создавать потоки данных.

3.

Генераторы
function* generateSequence() {
yield 1;
yield 2;
return 3;
}

4.

Генераторы
// "функция-генератор" создаёт объект "генератор"
let generator = generateSequence();
alert(generator); // [object Generator]

5.

Генераторы
let one = generator.next();
Результатом метода next() всегда является объект с двумя свойствами:
● value: значение из yield.
● done: true, если выполнение функции завершено, иначе false.

6.

Перебор генераторов
for(let value of generator) {
alert(value); // 1, затем 2
}

7.

Генераторы
мы также можем сделать генератор, который будет возвращать
значения бесконечно. Например, бесконечная последовательность
псевдослучайных чисел.

8.

Генераторы
function* generateSequence(start, end) {
for (let i = start; i <= end; i++) yield i;
}

9.

Задача
Создать генератор, который возвращает на каждый вызов четное число
из промежутка, переданного в аргументы генератора: generator(from, to)
English     Русский Rules