enums1.rs
原始代码:
#[derive(Debug)]
enum Message {
// TODO: Define a few types of messages as used below.
}
fn main() {
println!("{:?}", Message::Resize);
println!("{:?}", Message::Move);
println!("{:?}", Message::Echo);
println!("{:?}", Message::ChangeColor);
println!("{:?}", Message::Quit);
}
编译报错内容:
error[E0599]: no variant or associated item named `Resize` found for enum `Message` in the current scope
--> exercises/08_enums/enums1.rs:7:31
|
2 | enum Message {
| ------------ variant or associated item `Resize` not found for this enum
...
7 | println!("{:?}", Message::Resize);
| ^^^^^^ variant or associated item not found in `Message`
error[E0599]: no variant or associated item named `Move` found for enum `Message` in the current scope
--> exercises/08_enums/enums1.rs:8:31
|
2 | enum Message {
| ------------ variant or associated item `Move` not found for this enum
...
8 | println!("{:?}", Message::Move);
| ^^^^ variant or associated item not found in `Message`
error[E0599]: no variant or associated item named `Echo` found for enum `Message` in the current scope
--> exercises/08_enums/enums1.rs:9:31
|
2 | enum Message {
| ------------ variant or associated item `Echo` not found for this enum
...
9 | println!("{:?}", Message::Echo);
| ^^^^ variant or associated item not found in `Message`
error[E0599]: no variant or associated item named `ChangeColor` found for enum `Message` in the current scope
--> exercises/08_enums/enums1.rs:10:31
|
2 | enum Message {
| ------------ variant or associated item `ChangeColor` not found for this enum
...
10 | println!("{:?}", Message::ChangeColor);
| ^^^^^^^^^^^ variant or associated item not found in `Message`
error[E0599]: no variant or associated item named `Quit` found for enum `Message` in the current scope
--> exercises/08_enums/enums1.rs:11:31
|
2 | enum Message {
| ------------ variant or associated item `Quit` not found for this enum
...
11 | println!("{:?}", Message::Quit);
| ^^^^ variant or associated item not found in `Message`
For more information about this error, try `rustc --explain E0599`.
error: could not compile `exercises` (bin "enums1") due to 5 previous errors
这一节的报错已经很明显,每一个错误都有提示,那么根据提示可以看到,Message
枚举缺少字段,所以补全字段即可:
error[E0599]: no variant or associated item named `Resize` found for enum `Message` in the current scope
--> exercises/08_enums/enums1.rs:7:31
|
2 | enum Message {
| ------------ variant or associated item `Resize` not found for this enum
根据main 中的逻辑可以得知,需要有Resize
,Move
,Echo
,ChangeColor
和Quit
。
补全后:
#[derive(Debug)]
enum Message {
// TODO: Define a few types of messages as used below.
Resize,
Move,
Echo,
ChangeColor,
Quit,
}
将会输出:
Output
Resize
Move
Echo
ChangeColor
Quit
Exercise done ✓
Solution for comparison: solutions/08_enums/enums1.rs
When done experimenting, enter `n` to move on to the next exercise 🦀
Progress: [################################################################>-----------------------------------------------------------------------------------------------------------------------] 33/94
Current exercise: exercises/08_enums/enums1.rs