개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.22 01:04

BackedEnum::from 관련 질문

목록
  • 엘라스틱서치광 1일 전 2025.06.22 01:04
  • 10
    1
저는 Enum을 사용할 때 BackedEnum::from을 사용하여 Enum 값을 생성하려고 합니다.
하지만 저는 다음과 같은 오류를 만나고 있습니다.

rust

enum Color {

    Red,

    Green,

    Blue,

}



fn main() {

    let color: Color = match Color::from("Red") {

        Color::Red => Color::Red,

        _ => unreachable!(),

    };

}



위의 코드에서 Color::from("Red")은 어떻게 동작하는지 알려주세요.
또한, Color::from으로 Enum 값을 생성할 때 어떤 제약이 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    BackedEnum::from은 Enum의 변환 함수로, String이나 &str을 Enum 값으로 변환하는 데 사용됩니다.

    Color::from("Red")은 "Red"을 Color::Red로 변환하는 과정에서 String을 Enum 값으로 변환하는 함수를 호출합니다.

    이 함수는 내부적으로 String을 Enum 값으로 변환하기 위해 Enum의 variant를 String으로 매핑하는 방법을 사용합니다.

    만약 Enum의 variant가 String으로 매핑되지 않은 경우, panic!()이 호출됩니다.

    Color::from으로 Enum 값을 생성할 때는 Enum의 variant가 String으로 매핑되어야 합니다.

    예를 들어, Enum Color는 다음과 같이 정의할 수 있습니다.

    #hostingforum.kr
    rust
    
    enum Color {
    
        Red = "Red",
    
        Green = "Green",
    
        Blue = "Blue",
    
    }
    
    


    이 경우, Color::from("Red")은 "Red"을 Color::Red로 변환할 수 있습니다.

    하지만, 위의 예시와 같이 Enum의 variant가 String으로 매핑되지 않은 경우, panic!()이 호출됩니다.

    #hostingforum.kr
    rust
    
    enum Color {
    
        Red,
    
        Green,
    
        Blue,
    
    }
    
    
    
    fn main() {
    
        let color: Color = match Color::from("Red") {
    
            Color::Red => Color::Red,
    
            _ => unreachable!(),
    
        };
    
    }
    
    


    이 경우, Color::from("Red")은 panic!()이 호출됩니다.

    2025-06-22 01:05

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 30,296건 / 5 페이지

검색

게시물 검색