技術的備忘録

基本自分用備忘録

Dart まとめ2

関数

  • 返り値の型を先頭に記述する
  • 引数のリストを { } で囲むことで、名前付き引数を定義できる
    • 名前付き引数は呼び出し時に指定されてなくてもいい(オプショナル)
    • 名前付き引数の名前指定は必須
    • 普通の引数は名前指定できない
    • 名前付き引数のみデフォルト値が設定できる
void fuinction(int a, { int b, int c }, int d = 4) {
}

function(1, b: 2, c: 3);

高階関数

第一級関数をサポートしているプログラミング言語において少なくとも以下のうち1つを満たす関数である。 ・関数(手続き)を引数に取る ・関数を返す

ja.wikipedia.org

  • ※要確認

www.cresc.co.jp

宣言

  • final

    • 再代入不可能な変数
    • 参照先は変更できる
  • const

    • 再代入も参照先の変更もできない
    • FlutterではconstのWidgetは再描画されない

getter/setter

int _a = 0;

int get a => _a;

int set a(num) {
  _a = num;
}

class

class Sample {
  // フィールドの初期化短縮形
  const Sample (
    this.a,
    this.b
  )

  final int a;
  final int b;
}

final sample = Sample(a: 1, b: 2);

constructor

  • フィールドの初期化は短縮形を使用できる
  • finalなフィールドを初期化するときは Initializer を使う
  • フィールドがすべてfinalなら const をコンストラクタに使用できる

factory

Mixin

Null

  • ?.
    • 対象がNullではない場合メソッド呼び出し
  • ??
    • ?? の左側がNullじゃないならそっち、 ?? の左側がNullなら右側を返す
    • 三項演算子が簡単に記述できる感じ
  • ??=
    • 左辺がNullのときだけ右辺の値を代入する

カスケード演算子

  • ..
  • 同じオブジェクトに対して連続で複数の処理をする

Stream

  • 非同期に更新される複数の値を監視する

www.cresc.co.jp

async/await

  • async関数の返り値は通常の返り値をFutureでラップしたもの
await for
  • Streamの取り出し