公式ページのイントロダクションをもとにした使用例のメモです。
dart.dev
void main() {
print('-----Planet.values-----');
print(Planet.values);
print('');
print('-----Planet.uranus-----');
print(Planet.uranus);
print('');
print('-----Planet.uranus.name-----');
print(Planet.uranus.name);
print('');
print('-----Planet.uranus.planetType-----');
print(Planet.uranus.planetType);
print('');
print('-----Planet.uranus.planetType.name-----');
print(Planet.uranus.planetType.name);
print('');
print('-----Planet.uranus.moons-----');
print(Planet.uranus.moons);
print('');
print('-----Planet.uranus.hasRings-----');
print(Planet.uranus.hasRings);
print('');
print('-----Planet.uranus.isGiant-----');
print(Planet.uranus.isGiant);
print('');
print('/////giant planet or not/////');
if (Planet.uranus.isGiant) {
print('${Planet.uranus.name} is a "giant planet".');
}
print('');
final planets = Planet.values;
for (var p in planets) {
if (!p.isGiant) {
print('${p.name} is not a "giant planet".');
} else {
print('${p.name} is a "giant planet".');
}
}
}
enum PlanetType { terrestrial, gas, ice }
enum Planet {
mercury(planetType: PlanetType.terrestrial, moons: 0, hasRings: false),
venus(planetType: PlanetType.terrestrial, moons: 0, hasRings: false),
uranus(planetType: PlanetType.ice, moons: 27, hasRings: true),
neptune(planetType: PlanetType.ice, moons: 14, hasRings: true);
const Planet(
{required this.planetType, required this.moons, required this.hasRings});
final PlanetType planetType;
final int moons;
final bool hasRings;
bool get isGiant =>
planetType == PlanetType.gas || planetType == PlanetType.ice;
}