반응형
한정되고, 명확한 상수의 집합. Enum 타입에 대해 공부해 보자.
특정 프로그램을 개발하는데 3가지 상태값을 가지는 기능이 있다고 해보자.
그 3가지 상태값은
1. 승인 - approved
2. 반려 - rejected
3. 대기 - pending
상태별로 지정할 값 이름을 정했다면 선언 후, 코딩을 시작하자.
void main() {
String status1 = 'approved';
if(status1 == 'approved'){
print('승인되었습니다.');
}else{
print('반려 또는 대기 중입니다.');
}
}
위 코드를 실행하면 아래와 같은 결과가 나타나며, 문제없이 수행된다.
승인되었습니다.
하지만 할당해준 값이 잘못되었거나 외부로 부터 넘겨받은 값이 한 글자라도 틀렸다면
무조건 반려 또는 대기중이라는 결과가 도출될것이다.
void main() {
String status1 = 'approved';
//만약 아래와 같이 실수했다면?
if(status1 == 'approveb'){
print('승인되었습니다.');
}else{
print('반려 또는 대기 중입니다.');
}
//무조건 else를 타게되며 이런 문제는 종종발생한다.
}
반려 또는 대기 중입니다.
게다가 승인,반려,대기는 어떤값들인지 코멘트도 없다면 버그픽스에 큰 어려움이 있다.
이때 활용할 수 있는것이 바로 enum 타입 상수이다.
프로그램 상단, 그러니깐 자바로 치면 상수를 선언하는 영역, 전역변수 영역에 아래와 같이 선언한다.
enum Status {
approved,
rejected,
pending
}
void main() {
}
이후 아래 변경된 코드를 살펴보자.
enum Status {
approved,
rejected,
pending
}
void main() {
//상수 Status타입의 변수를 선언하여, 상수 approved값을 할당한다.
//(상수는 절대 변하지 않는 값.)
Status status2 = Status.approved;
//변수와 다르게 위험성을 최소화 하여 조건문을 실행할수 있다.
//enum을 사용해서 한정된 옵션을 굉장히 효율적으로 사용할 수 있다.
if(status2 == Status.approved){
print('승인되었습니다.');
}else{
print('반려 또는 대기 중입니다.');
}
//※상수에 포함된 목록들을 아래와 같이 확인해 볼 수도있다.
print(Status.values.toList());
}
승인되었습니다.
[Status.approved, Status.rejected, Status.pending, Status.whyy]
이렇게 변치않는 고정값(상수)에 대해서는 개별적으로 코딩하지말고 상수로 지정하여 활용하는 것이
이후 업무협업이나 안정적인 코딩과 프로그램을 위해서 필요하다고 생각된다.
enum type 상수 스터디 끝.
반응형