них?
Он может работать со структурами внутри enum, без скобок это варианты enum, структур объявленых там нет
такое не сможет: fn foo(value: Structs) { match value { Structs::struct1(data) => println!("{:?}", data), Structs::struct2(data) => println!("{:?}", data), Structs::struct3(data) => println!("{:?}", data), } }
переименовывать варианты?
А что мешает вместо этого кода сделать так: fn foo(value: Structs) { match value { Structs::struct1 => println!("{:?}", value), Structs::struct2 => println!("{:?}", value), Structs::struct3 => println!("{:?}", value), } } enum же можно вывести в дебаге автоматом, если трейт наследован?
Абсолютно другое поведение будет у этого кода
я не про дебаг, я про получение данных
Окей, видимо надо поиграться с этими структурами. Спасибо за ответы!
Просто попробуй сохранить данные в такой enum, или получить данные из enum. Как будет выглядеть такой код?
Взгляните вот здесь на enum Message https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html Вы поймете что я и другие ответившие подразумевали
Я разобрался, спасибо! Я почему-то думал, что если можно написать enum Message { Move { x: i32, y: i32 } } то это будет тоже самое, что struct Move { x: i32, y: i32 }; enum Message { Move } То есть Rust поймет, что Move это уже определенная структура, и автоматически неявно подставит { x: i32, y: i32 }. Но он так не делает...
Обсуждают сегодня