
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