関数
- 返り値の型を先頭に記述する
- 引数のリストを { } で囲むことで、名前付き引数を定義できる
- 名前付き引数は呼び出し時に指定されてなくてもいい(オプショナル)
- 名前付き引数の名前指定は必須
- 普通の引数は名前指定できない
- 名前付き引数のみデフォルト値が設定できる
void fuinction(int a, { int b, int c }, int d = 4) { } function(1, b: 2, c: 3);
高階関数
第一級関数をサポートしているプログラミング言語において少なくとも以下のうち1つを満たす関数である。 ・関数(手続き)を引数に取る ・関数を返す
- ※要確認
宣言
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
- 非同期に更新される複数の値を監視する
async/await
- async関数の返り値は通常の返り値をFutureでラップしたもの
await for
- Streamの取り出し