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