[Rust] 11. 열거형(enum)
프로그래밍 언어/Rust2023. 2. 14. 00:38
열거형 (enum)
열거형은 간단히 나열하다 라는 뜻으로, 서로 연관된 상수 집합에 의해 정의되는 값 형식입니다. 열거형을 정의하려면 enum 키워드를 정의하고 열거형 멤버의 이름을 지정합니다.
기본 열거형 타입
// 일반적인 enum 타입
enum 과일
{
사과,
딸기,
바나나,
포도,
}
enum 성별
{
남자,
여자,
중성,
}
열거형 예제
#[derive(Debug)]
enum 과일
{
사과,
딸기,
바나나,
}
fn main()
{
let banana = 과일::바나나;
println!("{:?}", banana);
}
// 예제 결과
바나나
값을 가질 수 있는 열거형 예제
#[derive(Debug)]
enum 색상
{
빨강(i32, i32, i32),
녹색(i32, i32, i32),
파랑(i32, i32, i32),
}
fn main()
{
let red = 색상::빨강(255, 0, 0);
println!("{:?}", red);
}
// 예제 결과
빨강(255, 0, 0)
match 를 활용한 값 비교
match를 활용하여 값을 찾을 수 있습니다. match 의 경우 switch ~ case 구문과 비슷하다고 할 수 있습니다.
#[derive(Debug)]
enum 과일
{
사과,
딸기,
바나나,
}
fn main()
{
let banana = 과일::바나나;
match banana
{
과일::사과 => println!("사과"),
과일::딸기 => println!("딸기"),
_ => println!("바나나"),
}
}
// 예제 결과
바나나
if let을 사용한 간결한 흐름 제어
match 와는 다르게 if let을 활용하여 간결하게 흐름을 제어할 수 있습니다.
#[derive(Debug)]
enum 과일
{
사과,
딸기,
바나나,
}
fn main()
{
let banana = 과일::바나나;
if let 과일::바나나 = banana
{
println!("{:?}", banana);
}
else
{
println!("other..");
}
}
'프로그래밍 언어 > Rust' 카테고리의 다른 글
[Rust] 13. 벡터(Vector) 컬렉션 (컨테이너) (0) | 2023.02.17 |
---|---|
[Rust] 12. 모듈화 (mod) (0) | 2023.02.15 |
[Rust] 10. 구조체(Struct) (0) | 2023.02.10 |
[Rust] 9. 슬라이스 (0) | 2023.02.08 |
[Rust] 8. 참조자 (&) (0) | 2023.02.05 |