728x90
※ 시작 전 참고사항 : 다트패드로테스트 진행
Enum이란?
enumerated type의 줄임말로 열거형이라 부르는데 값의 집합을 이루는 자료형이다. 많은 언어에서 사용되며 Dart에서도 동일하게 상수 역할을 하는 식별자로써 사용된다.
Enum을 사용하면서 얻는 장점은
- 코드가 단순해지며 가독성을 높일 수 있다.
- 인스턴스 생성과 상속을 방지하고 상수값의 타입에 대한 안정성을 보장한다.
- 구현의 의도를 분명하게 알 수 있다.
- 상태와 행위 정의에 대한 관리가 명확해진다.
enum Status {
PENDING, // 대기
APPROVED, // 승인
REJECTED // 거절
}
void main() {
Status status = Status.PENDING;
switch (status) {
case Status.PENDING:
print('대기중입니다.');
break;
case Status.APPROVED:
print('승인되었습니다.');
break;
case Status.REJECTED:
print('거절되었습니다.');
break;
default:
print('알수없는 상태입니다.');
break;
}
}
- enum을 선언하고 enum안에는 상수값들을 정의한다. 예제로 Status Enum에 대기, 승인, 거절에 대한 상수를 정의하였다.
- 조건문으로 Enum 상태 값을 받고 해당되는 상태 값에 print 함수로 내용을 출력했다. PENDING 상수값이 조건이므로 print('대기중입니다.'); 실행된다.
enum을 사용하지 않고 String으로 비교해도 되지 않을까?
void main() {
String status = 'PENDING';
switch (status) {
case 'PENDING':
print('대기중입니다.');
break;
case 'APPROVED':
print('승인되었습니다.');
break;
case 'REJECTED':
print('거절되었습니다.');
break;
default:
print('알수없는 상태입니다.');
break;
}
}
물론 가능하다. 위의 테스트 코드처럼 Enum을 적용한 테스트 코드와 동일하게 동작한다.
하지만 Enum을 사용하게 되면 정확하게 대기, 승인, 거절에 대한 상태 값만 존재한다라는 걸 명시할 수 있고 명시하게 되면 나 이외에 다른 개발자들도 상태 값에 대해 인지를 할 수 있게 되어 개발에 대한 오류를 줄일 수 있다. 그리고 String으로 개발하게 되면 오타가 나버린다면 원하는 동작이 불가능해진다. 오타에 대한 오류에 대해 방지할 수 있게 된다.
상수값들의 집합인 Enum을 생성하여 나와 다른 개발자들 간의 약속을 정하여 개발하는 게 유지보수, 추가 개발 건에 대한 장점이 명확해진다.
300x250
'Dart' 카테고리의 다른 글
[Dart] 언어 기본기 - Typedef편 (0) | 2022.12.09 |
---|---|
[Dart] 언어 기본기 - 함수편 (0) | 2022.12.08 |
[Dart] 언어 기본기 - 조건과 반복편 (0) | 2022.12.06 |
[Dart] 언어 기본기 - 컬렉션편 (0) | 2022.12.05 |
[Dart] 언어 기본기 - 오퍼레이터편 (0) | 2022.12.04 |
댓글