万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    1つしかメソッドがない抽象クラスでの警告対処

    以下のような1つしかメソッドがない抽象クラスの時、

    abstract class HogeRepository {
      Future<Bar?> get fuga({required String a, required String b});
    }

    以下の

    Avoid defining a one-member abstract class when a simple function will do

    の警告が出てしまう。

    https://github.com/dart-lang/linter/issues/64

    このサイトのようにして、 typedefを定義し、抽象クラスに適用。

    typedef HogeRepositoryResponse = Future<Bar?>
        Function({
      required String a,
      required String b,
    });
    
    abstract class HogeRepository {
      OperatorSettingsRepositoryResponse get fuga;
    }

    で、実際に抽象クラスをoverrideしたメソッドは 元々は

    Future<Bar?> fuga ({required String a, required String b}) async {
      // do something
    }
    @override
    HogeRepositoryResponse get fuga => ({required  a, required String b}) async {
      // do something
    }; // <= ここに;忘れないように

    にしていけた。

    getにしたり=>にするのを忘れずに。