앱 만들기 프로젝트/Dart

Dart - 4.6 Enums

지나가는물리학부생 2024. 10. 16. 16:55
반응형

내가 심심해서 만들고 있던 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