dart 2.17.0 발표중 가장 반가운 소식입니다.
우리 dart enum 이 달라졌어요.
더이상 enum 속성을 사용할때 extension을 사용하지 않아도 됩니다.
(extension 다시 부를때까지 안녕...)
먼저 프로젝트의 pubspect.yaml
파일에서 dart 버전을 확인하여 2.17.0 이상으로 맞춰줍니다.
environment:
sdk: ">=2.17.1 <3.0.0"
그런 다음 아래와 같은 형태로 enum class 를 만들고,
enum EnmSize {
fontVerySmall(12),
fontSmall(13),
fontLittleSmall(14),
fontNormal(16),
fontLittleLarge(18),
fontLarge(18);
final double size;
const EnmSize(this.size);
}
위젯이나 어디서든 compile time에 아래와 같이 편리하게 불러서 쓸 수 있습니다.
double get fontSizeVerySmall => EnmSize.fontVerySmall.size * sizeFactor;
double get fontSizeSmall => EnmSize.fontSmall.size * sizeFactor;
순서가 있는 경우에는 loop 도 가능해서 table column ui 속성을 enum 으로 정의하면 편리합니다. Java
등 다른 언어들에서는 진즉에 지원하던 편리한 기능을 드디어 만들었네요.
enum 많이 쓰세요.