【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part37 Dartの特徴

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part37 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part36 Dartの特徴

今回も同期ジェネレータについてです。

Dartの特徴

同期ジェネレータ

前回作成した同期ジェネレータ(getRange())は戻り値でIterableを返します。
どうやらIterableを返すメソッドはコレクション系の関数も使用できるようになるようです。

たとえば本書でも紹介されているwhere()メソッドです。
こちらの記事も参考にさせていただきました。

あなたが知っておくべき10の配列メソッド(Dart) – Qiita

Iterable<int> getRange(int start, int end) sync* {
  for (int i = start; i <= end; i++) {
    yield i;
  }
}
void main()  {
  // フィルタ(where)をしようして偶数の値のみ抽出しています。
  final numbers = getRange(1, 10).where((num) => num % 2 == 0);
  
  for (var val in numbers) {
    print(val);
  }
  
  // 1から10の値を取得し、文字列として新しいオブジェクトを生成。リストvalsを生成しました。
  final vals = getRange(1, 10).map((v) => v.toString() + '番です!');
  for (String val in vals) {
    print(val);
  }
}

最後に

なんだかJavaを学習している気分になります。
あ!これはFlutterの書籍でしたね(笑

今日はここまで!