【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part24 typedef

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

前回

【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part23 Enum

今回はtypedefについて学習します。

typedef

typedefキーワードを使うと関数型に別名の型を付けることができます。
C#でいうところのdelegateのようなキーワードですかね?

// typedefを使わない例です。
class SortedCollection01 {
  // Functionに?を付けないとコンストラクタで怒られます・・・不思議。
  Function? compare;
  
  // 本書ではf(Object a, Object b) と記載されているが警告がでました。
  SortedCollection01(int Function(Object, Object) a) {
    compare = a;
  }
}

// typedefを使う例です。
typedef Compare = int Function(Object a, Object b);

class SortedCollection02 {
  // Compareに?を付けなくても怒られません・・奇怪。
  Compare compare;
  SortedCollection02(this.compare);
}

最後に

フィールドで?を付与する場合としない場合があるのはなんでしょうか?
Nullセーフがらみのことだと思っているのですが、Mapオブジェクトなどでもエラーとなったり😑

今日はここまで!