다트에서 Enum을 정의하는 방법은?
_____A1: Enum(열거형)은 관련된 상수 값들의 집합을 정의하는 자료형으로, 코드의 가독성과 안정성을 높이기 위해 사용됩니다.
Q2: Dart에서 Enum을 어떻게 정의하나요?
A2: `enum` 키워드를 사용하여 enum을 정의합니다. 예를 들어:
```dart
enum Color {
red,
green,
blue,
}
```
Q3: 각 Enum 값에 자동으로 할당되는 값이 있나요?
A3: Dart Enum 값은 정수 값으로 자동 할당되지 않고, 각 값은 `Color.red`와 같은 식별자를 갖습니다. 내부적으로 인덱스(index) 속성을 가지고 시작값은 0입니다.
Q4: Enum 값을 어떻게 사용하나요?
A4: Enum 값은 다음과 같이 사용합니다.
```dart
Color favorite = Color.green;
switch (favorite) {
case Color.red:
print("Red color");
break;
case Color.green:
print("Green color");
break;
case Color.blue:
print("Blue color");
break;
}
```
Q5: Dart 2.17 이상에서 Enum에 멤버(필드, 메서드)를 추가할 수 있나요?
A5: 네, Dart 2.17부터 Enum에 멤버와 생성자를 정의할 수 있습니다. 예:
```dart
enum Status {
success(200),
notFound(404),
serverError(500);
final int code;
const Status(this.code);
}
```
Q6: Enum의 모든 값을 리스트로 얻는 방법은?
A6: Enum 클래스에는 자동으로 `values`라는 리스트가 생성됩니다. 예:
```dart
for (var color in Color.values) {
print(color);
}
```
Q7: Enum의 이름 문자열을 얻는 방법은?
A7: Enum 값의 `name` 속성을 사용합니다. 예:
```dart
print(Color.red.name); // 출력: 'red'
```
Q8: 커스텀 데이터를 가진 Enum을 어떻게 정의하나요?
A8: 생성자와 필드를 사용하여 정의할 수 있습니다. 예:
```dart
enum Planet {
earth(5.972e24),
mars(6.39e23);
final double mass;
const Planet(this.mass);
}
```
Q9: Enum 값에서 인덱스(ordinal)를 얻으려면?
A9: `index` 속성으로 얻을 수 있습니다. 예:
```dart
print(Color.blue.index); // 2
```
---
요약하자면, Dart에서는 `enum` 키워드를 사용해 열거형을 정의하며, 변수처럼 사용할 수 있고, Dart 2.17부터는 생성자와 멤버를 추가하는 등 확장도 가능합니다.
Enum을 사용하면 코드의 가독성을 높이고, 특정 값의 집합을 명확하게 표현할 수 있습니다.
Enum은 주로 상태, 옵션, 또는 특정한 카테고리를 정의할 때 유용합니다.
Enum 정의하기 다트에서 Enum을 정의하는 방법은 다음과 같습니다: 1. Enum 키워드 사용 : Enum을 정의할 때는 `enum` 키워드를 사용합니다.
2. 값 나열 : Enum의 각 값은 쉼표로 구분하여 나열합니다.
기본적인 Enum 예제 ```dart enum Color { red, green, blue, } ``` 위의 예제에서 `Color`라는 Enum을 정의하였고, `red`, `green`, `blue`라는 세 가지 값을 포함하고 있습니다.
Enum 사용하기 Enum을 사용하여 변수를 선언하고, 조건문에서 Enum 값을 비교할 수 있습니다.
```dart void main() { Color favoriteColor = Color.green; switch (favoriteColor) { case Color.red: print("Your favorite color is red."); break; case Color.green: print("Your favorite color is green."); break; case Color.blue: print("Your favorite color is blue."); break; } } ``` Enum의 메서드와 속성 Enum 값은 객체로 취급되므로, Enum에 메서드를 추가하거나 속성을 정의할 수는 없습니다.
하지만 Enum의 값을 문자열로 변환하거나, Enum의 값을 리스트로 가져오는 등의 작업은 가능합니다.
Enum을 문자열로 변환하기 Enum 값을 문자열로 변환하려면 `toString()` 메서드를 사용할 수 있습니다.
이 메서드는 Enum 값의 이름을 포함한 문자열을 반환합니다.
```dart void main() { Color color = Color.red; print(color.toString()); // 출력: Color.red } ``` `toString()` 메서드를 사용하여 Enum의 이름만 얻고 싶다면, 다음과 같이 사용할 수 있습니다: ```dart void main() { Color color = Color.red; print(color.toString().split('.').last); // 출력: red } ``` Enum의 확장 Dart에서는 Enum에 메서드를 직접 추가할 수는 없지만, Enum을 확장하는 방법으로 `extension`을 사용할 수 있습니다.
이를 통해 Enum에 추가적인 기능을 부여할 수 있습니다.
```dart enum Color { red, green, blue, } extension ColorExtension on Color { String get description { switch (this) { case Color.red: return "This is red color."; case Color.green: return "This is green color."; case Color.blue: return "This is blue color."; } } } void main() { Color color = Color.green; print(color.description); // 출력: This is green color. } ``` Enum의 장점 1. 가독성 : Enum을 사용하면 코드의 의미가 명확해져 가독성이 향상됩니다.
2. 타입 안전성 : Enum은 특정한 값의 집합을 정의하므로, 잘못된 값이 사용되는 것을 방지할 수 있습니다.
3. 유지보수 용이성 : Enum의 값이 변경되거나 추가될 경우, 코드의 다른 부분에 미치는 영향을 최소화할 수 있습니다.
결론 Dart에서 Enum은 특정한 값의 집합을 정의하고 사용할 수 있는 강력한 도구입니다.
Enum을 통해 코드의 가독성을 높이고, 타입 안전성을 확보할 수 있으며, 유지보수성을 향상시킬 수 있습니다.
Enum을 적절히 활용하여 더 나은 코드를 작성해 보세요.
작성자:
정예린 [비회원]
| 작성일자: 1년 전
2024-09-19 01:52:36
조회수: 137 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 137 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.