Junior — Middle
Dartda ma'lumot oqimini amalga oshirish uchun qanday usullar mavjud?
sobes.tech AI
AIdan javob
Dart'ta ma'lumot oqimlarini (streams) amalga oshirish uchun bir nechta yondashuvlar mavjud:
- Stream va StreamController — oqimlar bilan ishlashning asosiy usuli.
StreamControllervoqealarni qo'shishga imkon beradi,Streamesa unga obuna bo'lish mumkin bo'lgan oqimdir.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Olingan: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Asinxron generatorlar (async)* — qiymatlarni chiqarish uchun
yieldso'zini ishlatadigan vaStreamqaytaradigan funktsiyalar yordamida ma'lumot oqimlarini yaratish imkonini beradi.
Stream<int> countStream(int to) async* {
for (int i = 1; i <= to; i++) {
yield i;
await Future.delayed(Duration(seconds: 1));
}
}
countStream(3).listen(print);
- Kutubxonalar bilan tayyor oqimlardan foydalanish — masalan,
Stream.periodicdoimiy voqealar uchun.
Shunday qilib, asosiy usullar — bu StreamController yordamida oqimlarni yaratish va boshqarish, va asinxron generatorlar yordamida ma'lumotlar ishlab chiqarish uchun oqimlar yaratishdir.