[Dart] Generic과 enum(열거형)

Sin_B·2023년 5월 31일
0

Dart

목록 보기
8/14

Generic이 대체 뭘까?

Generic동일한 코드를 여러 다른 타입에 대해 재사용할 수 있도록 도와주는 기능입니다.
쉽게 말하자면, 일반적인 타입과는 달리 나중에 원하는 형태로 정의가 가능한 그러한 기능입니다.

Generic을 사용하면 클래스, 함수 또는 인터페이스에 대한 타입 정보를 매개변수로 지정할 수 있습니다. Generic의 사용을 통해 해당 코드를 여러 다른 타입에 대해 사용할 수 있으며, 타입 안전성재사용성을 개선할 수 있습니다.

다음은 Generic을 사용하는 방법입니다.

Dart에서 Generic을 정의하기 위해서는 <T>와 같은 형태로 타입 매개변수를 사용합니다. (여기서 T는 임의의 타입을 나타냅니다.)
보통 Generic은 <E><K, V>와 같이 사용되는데, 여기서 E는 Element, K는 Key, V는 Value로 사용됩니다.

또한, 미정인 타입, 임의의 타입을 클래스에 사용이 가능합니다. 타입에 제약을 줘서 조건을 걸 수도 있습니다. 예) E extends Book / E implement Book

위의 예시에서 Generic 클래스는 E라는 타입 매개변수를 갖습니다. value 필드의 타입과 getValue 메서드의 반환 타입은 모두 E로 선언되었습니다. 이를 통해 main에서 Generic의 인스턴스를 생성할 때, 실제 타입을 지정할 수 있으며, 해당 타입에 대한 값을 저장하고 반환할 수 있습니다.

Generic을 사용하면 코드의 재사용성이 증가하고 타입 안정성이 개선되기 때문에 Dart에서는 Generic을 지원합니다. Generic을 사용하면 타입에 대한 추상화와 재사용성을 달성할 수 있으며, 코드의 유지 보수성가독성을 향상시킬 수 있습니다.


enum(열거형)이란?

Dart에서는 enum(열거형) 데이터 형식을 지원합니다.
enum은 한정된 값의 집합을 정의할 때 사용되며, 주로 상수 값들의 그룹을 표현하는데 사용됩니다. 더 쉽게 말하자면, 정해둔 값만 넣을 수 있는 데이터 타입이라는 뜻입니다.

Dart에서 enum은 말그대로 enum 키워드를 클래스 밖에 사용하여 선언합니다.

위의 예시에서 enum을 사용한 Colorenum의 이름이며, 내부에는 white / yellow / blue라는 열거 상수가 들어있습니다.

enum 상수정수 값에 자동으로 대응되며, 0부터 순서대로 1씩 증가합니다. 즉, Color.white는 0에 해당하고, Color.yellow는 1에, Color.blue는 2에 해당하게 됩니다. 이러한 값은 index 속성을 사용하여 얻을 수 있습니다.

또한, enum은 switch문과 함께 사용해야하기 때문에 패턴 매칭에 유용하게 활용될 수 있습니다.
enum은 코드의 가독성을 높이고, 일정한 값의 집합을 정의할 때 유용하게 사용될 수 있습니다.

profile
| App Developer | 제가 한 개발을 읽는 사람이 이해하기 쉽게 쓰려고 노력합니다.

0개의 댓글