초급 문법 : 14. 열거형 (enum) – 여러 개의 값 중 하나를 가질 수 있는 타입
🔶 1단계: 열거형(enum)이란 무엇인가요?
열거형 (enum) 은 여러 가지 경우 중 하나를 선택할 수 있는 타입입니다.
예를 들어, 사과(Apple), 바나나(Banana), 오렌지(Orange) 중 하나를 고를 수 있는 과일 타입이 있다고 생각해보세요.
이런 여러 선택지 중 하나를 표현할 때 enum을 사용합니다.
🔶 2단계: 아주 간단한 예제 설명
enum Fruit {
Apple,
Banana,
Orange,
}
이 코드는 Fruit이라는 열거형(enum)을 정의한 것입니다.
이 열거형은 3가지 값 중 하나만 가질 수 있습니다:
- Fruit::Apple
- Fruit::Banana
- Fruit::Orange
🔶 3단계: VS Code로 실행하기 (Windows)
코드를 작성하고 실행해 봅시다.
VS Code에서 Rust 파일 생성
1️⃣ 터미널 열기
- VS Code를 실행하고, Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
- 또는 메뉴에서 [터미널] → [새 터미널] 선택하세요.
- 터미널이 이미 열려 있으면, 열려 있는 터미널을 이용하세요.
2️⃣ 새 Rust 프로젝트 생성
- 새로운 Rust 프로젝트를 만들 폴더로 이동 (예: C:\RustProjects)
cd C:\RustProjects
- 터미널에 아래 명령을 입력하고 Enter 키를 누릅니다.
- rust_enum 이라는 폴더가 생성됩니다.
cargo new rust_enum
3️⃣ 프로젝트 열기
- VS Code에서 [파일] → [폴더 열기] 선택 후 rust_enum 폴더를 엽니다.
4️⃣ 메인 파일 열기
- 왼쪽 src 폴더에서 main.rs 파일을 클릭하여 엽니다.
🔶 4단계: 실제 예제 코드 작성 및 설명
✔ 전체 코드 (예: main.rs)
// 열거형 정의
enum Fruit {
Apple,
Banana,
Orange,
}
// main 함수 시작
fn main() {
// 변수 my_fruit에 Fruit 열거형 중 하나를 저장
let my_fruit = Fruit::Banana;
// match 문법을 사용해서 열거형 값에 따라 다른 동작
match my_fruit {
Fruit::Apple => println!("You selected Apple."),
Fruit::Banana => println!("You selected Banana."),
Fruit::Orange => println!("You selected Orange."),
}
}
🔶 5단계: 코드 설명 (한 줄씩 자세히)
코드 | 설명 |
enum Fruit { ... } | Fruit라는 열거형 타입을 새로 정의합니다. 선택지는 Apple, Banana, Orange입니다. |
fn main() { ... } | 프로그램이 시작되는 main 함수입니다. |
let my_fruit = Fruit::Banana; | my_fruit라는 변수에 Fruit 중에서 Banana를 저장합니다. |
match my_fruit { ... } | match를 사용하여 my_fruit이 어떤 값인지 검사하고, 그에 맞는 메시지를 출력합니다. |
println!(...) | 콘솔에 글자를 출력하는 명령입니다. |
🔶 6단계: 코드 실행하기
▶ Ctrl + S를 눌러 파일을 저장합니다. (또는 메뉴 -> 파일 -> 저장)
Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
- 터미널에서 실행:
cargo run
▶ 실행 결과
You selected Banana.
🎉 잘 되셨나요? 성공하셨으면 열거형을 제대로 이해하신 것입니다!
🔶 7단계: 조금 더 확장된 예제 (값을 함께 저장하는 enum)
enum은 값도 함께 저장할 수 있어요.
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
}
fn main() {
let msg = Message::Move { x: 10, y: 20 };
match msg {
Message::Quit => println!("Quit message"),
Message::Move { x, y } => println!("Move to ({}, {})", x, y),
Message::Write(text) => println!("Text: {}", text),
}
}
이런 식으로 enum 내부에 구조체처럼 데이터를 포함할 수도 있습니다.
🔶 요약
개념 | 설명 |
enum | 여러 개 중 하나를 선택할 수 있는 타입 |
match | enum 값을 검사하고, 어떤 값인지에 따라 동작을 바꾸는 문법 |
사용 예 | 과일, 메시지 타입, 상태 등을 나타낼 때 |
이상으로 enum에 대해 알아보았습니다.
[ Rust ] 러스트 프로그래밍 언어 관련 글 목록입니다.
러스트 컴퓨터 프로그래밍 언어를 아이들에게 알려주기 위해 글을 작성하고 있습니다.가능한 쉽고 자세하게 그리고 잘 따라할 수 있도록 작성해 보려고 합니다.글이 작성되는 대로 계속 추가하
hb-love-each-other.tistory.com
한국 러스트 사용자 그룹
rust-kr.org
Rust Programming Language
A language empowering everyone to build reliable and efficient software.
www.rust-lang.org
'컴퓨터에서는' 카테고리의 다른 글
[ Rust ] 초급 문법 : 13. 구조체 (struct) – 사용자 정의 데이터 타입 만들기 (0) | 2025.05.07 |
---|---|
[ Rust ] 초급 문법 : 12. 튜플 (tuple) – 여러 개의 값을 묶어서 다루는 구조 (0) | 2025.05.06 |
[ Rust ] 초급 문법 : 11. 배열과 슬라이스 – 배열과 슬라이스 데이터 다루기 (0) | 2025.04.28 |
[ Rust ] 초급 문법 : 10. 사용자 입력과 출력 (println!, std::io) – 화면에 출력하고 입력 받기 (0) | 2025.04.25 |
[ Rust ] 초급 문법 : 9. 패턴 매칭 (match) – 여러 가지 경우를 처리하는 match 표현식 (0) | 2025.04.22 |
댓글