반응형
내가 심심해서 만들고 있던 flutter 앱(gpt가 코딩을 다 해준다... 나는 하는 게 없음)에서 최근에 Enum을 사용했다.
마침 이게 나오네.
'enum'은 선택의 폭을 좁혀주는 역할을 한다.
문자열로 쓰는게 아니다. 일종의 '변수' 선언 같다.
enum Team { red, blue }
enum XPLevel { beginner, medium, pro }
이렇게 Team과 XPLevel의 이름을 갖는 enum을 만들었다고 하자.
그러면, Player라는 이름을 갖는 class는 다음과 같이 된다.
class Player {
String name;
// int xp;
XPLevel xp;
// String team;
Team team;
// 변수 순서 안중요함.
Player({
required this.name,
required this.xp,
required this.team,
});
void sayHello() {
print("Hi my name is $name");
}
}
변수의 형태 자체가 enum의 이름으로 바뀐 것을 확인할 수 있다.
그렇다면 당연히 이를 사용할 때에도 다음과 같이 된다.
void main() {
var me = Player(name: 'me', xp: XPLevel.beginner, team: Team.blue);
// name, xp, team을 바꾸고 싶다면?
me.name = 'another';
me.xp = XPLevel.medium;
me.team = Team.red;
// 아래와 같이 쓸 수도 있음.
var me2 = Player(name: 'me', xp: XPLevel.beginner, team: Team.blue)
..name = 'another'
..xp = XPLevel.pro
..team = Team.red
..sayHello();
// 바로 앞에 class가 있다면 '.'이 바로 앞에 있는 class를 가리킨다
}
이것도 꽤 흥미롭다.
dart는 뭔가 문법이 다 신기하다. 코딩 정확도를 높이도록 노력해준달까?
반응형
'앱 만들기 프로젝트 > Dart' 카테고리의 다른 글
Dart - 4.8 Inheritance(상속) (4) | 2024.10.16 |
---|---|
Dart - 4.7 Abstract Classes (0) | 2024.10.16 |
Dart - 4.5 Cascade Notation (0) | 2024.10.16 |
Dart - 4.3 Named Constructors (0) | 2024.10.16 |
Dart - 4.2 Named Constructor Parameters (0) | 2024.10.16 |