dart enum String 변환하기

Hee Tae Shin·2023년 2월 27일
1

Dart

목록 보기
3/4
post-thumbnail

dart 에서 enum을 사용할 때가 있다.

dart 는 타입스크립트와 같은 방법으로는 안된다.

// 컴파일 에러!!
enum Example {
	a = "A입니다.",
    b = "B입니다.",
}

선언 )

enum Example {
	a,
    b,
}

방법 1 )
함수로 해결하기

String convertExampleToText(Example example) {
	swith (example) {
    	case example.a:
	        return "A입니다.";
    	case example.b:
    	    return "A입니다.";
        default:
        	return "";
    }
}
print(convertExampleToText(Example.a)); // A입니다.

방법 2 )
extension method 로 해결하기

extension ExampleExtension on Example {
	String get convertExampleToText {
    	switch(this) {
          case example.a:
              return "A입니다.";
          case example.b:
              return "A입니다.";
          default:
              return "";
        }
    }
} 

print(Example.a.convertExampleToText); // A입니다.

방법 3 ) 2.17 버전 이후로는 이렇게도 가능하다.
enum 확장 버전

enum Tags {
  study('STUDY', '공부'), // 공부
  career('CAREER', '진로'), // 진로
  love('LOVE', '연애'), // 연애
  breakUp('BREAKUP', '이별'), // 이별
  friend('FRIEND', '친구'), // 친구
  religion('RELIGION', '종교'), // 종교
  money('MONEY', '금전'), // 금전
  jobs('JOBS', '취업'), // 취업
  etc('ETC', '기타'); // 기타

  final String tag;
  final String tagName;

  const Tags(this.tag, this.tagName);
}

view 단

Tags selectedTag = Tags.study;
index = 0;
Text(Tags.values[index].tagName); // 공부
Text(Tags.values[index].tag); // STUDY
profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2023년 3월 21일

좋은 정보 감사합니다

답글 달기