Enum

전지현·2024년 9월 4일
0

Rust

목록 보기
13/17
enum Color {
    Red,
    Green,
    Blue,
}

fn main() {
    let red: Color = Color::Red;
    let green = Color::Green;

    println!("red = {}", red);   // display trait 가 없기 때문에 오류 뜸.
}

#[derive(Debug, PartialEq)] 추가해주면 프린트 잘됨. (PartialEq로 비교도 가능)

#[derive(Debug, PartialEq)]
enum Color {
    Red,
    Green,
    Blue,
}

fn main() {
    let red: Color = Color::Red;
    let green = Color::Green;

    println!("red = {:?}", red);   // display trait 가 없기 때문에 오류 뜸.
    println!("red == green => {}", red == green);
    println!("red == red => {}", red == red);
}

[실행결과]
red = Red
red == green => false
red == red => true


Enum 안에 다양한 타입 담기

enum Message {
    StartGame,
    WinPoint {who: String},
    ChangePlayerName(String),
}

fn  main() {
    let m1 = Message::StartGame;
    let m2 = Message::WinPoint { who: String::from("홍길동"), };
    let m3 = Message::ChangePlayerName(String::from("길동"));
}

  • Rust에는 NULL이 없다.
  • NULL 대신 None인지 아닌지를 비교한다.
  • let absent_number: Option<i32> = None;



match 구문

0개의 댓글