Flutter(Dart)におけるプロパティのgetterとsetterの記述方法について解説します。
DartにおけるGetterとSetter
基本的なGetterとSetter
まず、単純なgetterとsetterの例から見ていきましょう。以下のクラスPersonでは、_nameプロパティに対してgetterとsetterを定義しています。
class Person {
  String _name;
  // Getter
  String get name => _name;
  // Setter
  set name(String value) {
    _name = value;
  }
}
ここでは、_nameプロパティがプライベートであるため、外部から直接アクセスすることはできません。代わりに、nameプロパティを通じて間接的にアクセスします。
単一行で書かれるGetter
Getterは値を返すシンプルなものであれば、単一行で記述することができます。以下は、Personクラスで年齢を返す簡単なgetterの例です。
class Person {
  int _age = 30;
  // 単一行のGetter
  int get age => _age;
}
このage getterは、_ageフィールドの値をそのまま返します。
複数行のロジックを含むGetter
複雑なロジックを含むgetterも作成可能です。例えば、Personクラスが生年月日から年齢を計算するgetterを持っている場合、以下のように記述することができます。
class Person {
  DateTime birthDate;
  // 複数行のロジックを含むGetter
  int get age {
    var now = DateTime.now();
    var age = now.year - birthDate.year;
    if (now.month < birthDate.month || 
        (now.month == birthDate.month && now.day < birthDate.day)) {
      age--;
    }
    return age;
  }
}
まとめ
Dartにおけるgetterとsetterは、クラスのフィールドへのアクセスを抽象化し、制御された方法でデータを操作できるようにするための方法です。

0 件のコメント:
コメントを投稿