0
0

Flutter 〜プロパティゲッターについて〜

Posted at

SQLiteを実験中なのでメモ
DBを初期化するときに以下のような実装部分が登場する。

Future<Database?> get database async {
  if (_database != null) return _database;
  _database = await _initDatabase();
  return _database;
}

この記載方法は自分には関数の定義に見えるが、
プロパティを定義している、と解釈するのが正しい模様。

getはプロパティゲッターを定義するキーワードになる。

外部からアクセスをする場合、「instance.database」というような
記載方法でアクセスできるのでコーディングが読みやすくなる。

以下にサンプル。

class ClassName {
  // プロパティのバックフィールド
  int _value;

  // コンストラクタ
  ClassName(this._value);

  // プロパティゲッター
  int get value {
    return _value;
  }
}

これを使用する場合、

void main() {
  var obj = ClassName(10);
  print(obj.value); // 10
}

外部から利用する場合、プロパティとしてアクセスをすることができて、
定義をする側では複雑なロジックを実装することが可能となる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0