公式ページのイントロダクションをもとにした使用例のメモです。
dart.dev
void main() {
var voyager = Spacecraft('Voyager I', DateTime(1977, 9, 5));
print(voyager.name);
print(voyager.launchDate);
print(voyager.launchYear);
voyager.describe();
print('------------------------------');
var voyager3 = Spacecraft.unlaunched('Voyager III');
print(voyager3.name);
print(voyager3.launchDate);
print(voyager3.launchYear);
voyager3.describe();
}
class Spacecraft {
String name;
DateTime? launchDate;
int? get launchYear => launchDate?.year;
Spacecraft(this.name, this.launchDate) {
}
Spacecraft.unlaunched(String name) : this(name, null);
void describe() {
print('Spacecraft: $name');
var launchDate = this.launchDate;
if (launchDate != null) {
int years = DateTime.now().difference(launchDate).inDays ~/ 365;
print('Launched: $launchYear ($years years ago)');
} else {
print('Unlaunched');
}
}
}