Генераторы в Dart – это функции, которые возвращают последовательность значений по мере их генерации, а не весь результат сразу. Используются ключевые слова sync*
для синхронных и async*
для асинхронных генераторов.
Синхронные генераторы (sync*
)
Возвращают объект типа Iterable
. Используют ключевое слово yield
для выдачи следующего значения. Поток выполнения приостанавливается до тех пор, пока следующее значение не будет запрошено (например, в цикле for-in
).
dart
Асинхронные генераторы (async*
)
Возвращают объект типа Stream
. Используют ключевое слово yield
для выдачи следующего значения. Так же используют yield*
для выдачи всех значений другого Stream
. Поток выполнения приостанавливается и возобновляется при наличии нового асинхронного события.
dart
Генераторы в Dart – это функции, которые возвращают последовательность значений по мере их генерации, а не весь результат сразу. Используются ключевые слова sync*
для синхронных и async*
для асинхронных генераторов.
Синхронные генераторы (sync*
)
Возвращают объект типа Iterable
. Используют ключевое слово yield
для выдачи следующего значения. Поток выполнения приостанавливается до тех пор, пока следующее значение не будет запрошено (например, в цикле for-in
).
dart
Асинхронные генераторы (async*
)
Возвращают объект типа Stream
. Используют ключевое слово yield
для выдачи следующего значения. Так же используют yield*
для выдачи всех значений другого Stream
. Поток выполнения приостанавливается и возобновляется при наличии нового асинхронного события.
dart
Register or sign in to get access to full answers for all questions from the question bank.