私がオススメするプログラミング教材です

【Dart入門】streamとasyncの使い方

更新日:

記事の内容


この記事では、DartのStreamとasyncを組み合わせた方法の使い方を説明します。

streamとasync

例を見ながら、説明していきます。
async関数の中では「await for」を使ってStreamの値を取り出すことができます。

また、「async*」関数の中で「yield」キーワードを使うことで、返り値のStreamに値を流すことができます。

import 'dart:async';
Future<int> sumStream(Stream<int> stream) async {
var sum = 0;
await for (var value in stream) {
sum += value;
}
return sum;
}
Stream<int> countStream(int to) async* {
for (int i = 1; i <= to; i++) {
yield i;
}
}
main() async {
var stream = countStream(10);
var sum = await sumStream(stream);
print(sum); // 55
}

型に関係なく、以下のように使うこともできます。

import 'dart:async';
Future<List> displayStream(Stream<String> stream) async {
List<String> arr = [];
await for (var value in stream) {
arr.add(value + '-inside-stream');
}
return arr;
}
Stream<String> passStream(List to) async* {
for(var v in to){
yield v;
}
}
main() async {
var stream = passStream(['a', 'b', 'c', 'd']);
var str_1 = await displayStream(stream);
print(str_1);
}
// [a-inside-stream, b-inside-stream, c-inside-stream, d-inside-stream]

DartとFlutterをより詳しく勉強したい人には、この記事がオススメです


SwiftでiOSアプリを開発したい人には、この記事がオススメです


KotlinでAndroidアプリを開発したい人には、この記事がオススメです


Gitをより詳しく勉強したい人には、この記事がオススメです


ゼロからWebエンジニアになりたい人には、この記事がオススメです


独学で実務っぽい経験を積みたい人には、この記事がオススメです

-Dart, プログラミング

S