Dartの勉強11−3:同期・非同期(ジェネレーター:Generator)
ジェネレーターは、大量の繰り返し処理等で以下の特徴があります。 sync* は同期ジェネレーター関数を、async*は非同期ジェネレーター関数を示します。 yield キーワードを使って値を1つずつ返します。 すべての値…
ジェネレーターは、大量の繰り返し処理等で以下の特徴があります。 sync* は同期ジェネレーター関数を、async*は非同期ジェネレーター関数を示します。 yield キーワードを使って値を1つずつ返します。 すべての値…
まずは、このコードを見てみようか。 =async/awaitを使わない= Future fetchUserData() { return Future.delayed(Duration(seconds: 2), () =…
フォルダ間をシンクロさせるプログラムの作成に必要な機能を勉強していきます。 非同期となる処理は、asyncを入れて、処理中に非同期処理を呼び出すと終了を待たずに先に進んでしまう。 同期・非同期 処理の完了を待たなくても先…
JSONはMap型と親和性の高い形式ですが、クラスを使うと型安全で可読性も上がり、再利用できて、フィールドの変更があってもクラスの変更だけで対応できて保守性も上がるいいことずくめだということです。 import ‘dar…
オブジェクト指向言語であるDartの基本的な構成要素で、データ(フィールド)と動作(メソッド)をまとめたものです。 Map型のようにキーと値を都度してバグを作ることを回避するのに便利で、さらに処理結果も返してくれる優れも…
Map型は、キーと値のペアでデータを管理するコレクションです。 Mapの作成 void main() { var map = { ‘name’:’Japan’, ‘population’:128057, ‘area’:3…
配列のメソッドを使った処理等はラムダ式を使うとすっきりとしたものになります。1行で表せる処理を関数を宣言しないで完了させるものなので、行数削減になりますが、個人的には可読性が落ちると思います。 sort //ラムダ式を使…
匿名関数の前に配列と高階関数を確認した方がいいというChatGPT先生の助言に基づいています。 配列(lists:In Dart, arrays are List objects, so most people just…
条件分岐の2としてif-caseとswitchを扱います。コードを見た方が早いので下をご覧ください。 if-case void main() { var pair = [2, 5]; if (pair case [int…
ChatGPT先生に監修して頂いてDartの学習を再開します。 これまでの記述に不足していたところを適宜くわえていきます。今回は、変数とデータ型です。 変数とは、数値や文字列等のデータを保存しておく入れ物で、何らかの名前…