Appearance
枚举2: exercises/enums/enums2.rs
题目
rust
// enums2.rs
//
// Execute `rustlings hint enums2` or use the `hint` watch subcommand for a
// hint.
// I AM NOT DONE
#[derive(Debug)]
enum Message {
// TODO: define the different variants used below
}
impl Message {
fn call(&self) {
println!("{:?}", self);
}
}
fn main() {
let messages = [
Message::Move { x: 10, y: 30 },
Message::Echo(String::from("hello world")),
Message::ChangeColor(200, 255, 255),
Message::Quit,
];
for message in &messages {
message.call();
}
}
题目解析
这道题目主要也是各种类型枚举的定义:
Message::Move { x: 10, y: 30 }
: 类似结构体,包含命名字段Message::Echo(String::from("hello world"))
: 包含一个字符串Message::ChangeColor(200, 255, 255)
: 有点类似元组,包含3个字段Message::Quit
: 不包含任何字段
rust
#[derive(Debug)]
enum Message {
// TODO: define the different variants used below
Move { x: u8, y: u8 },
Echo(String),
ChangeColor(u8, u8, u8),
Quit,
}