学习Rust enum
类似代码如下
fn main() {
enum Direction{ Up, Down, Left, Right } let player_direction : Direction = Direction::Up; match player_direction { Direction::Up => { println!("the player input UP"); }, Direction::Down => { println!("the player input Down"); }, Direction::Right => { println!("the player input Right"); } } }
编译报错(我自己删除了行号):
error[E0004]: non-exhaustive patterns: `Left` not covered
--> src\main.rs:232:11
|
| / enum Direction{
| | Up,
| | Down,
| | Left,
| | ---- not covered
| | Right
| | }
| |_____- `main::Direction` defined here
...
| match player_direction {
| ^^^^^^^^^^^^^^^^ pattern `Left` not covered
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
牛得一批。错误信息的提示太给力了。有啥好说的,赶紧加上Left吧
当然你也可以通过写
_ => { println!("are you sure ?");
来解决这个问题。
match player_direction { Direction::Up => { println!("the player input UP"); }, Direction::Down => { println!("the player input Down"); }, Direction::Right => { println!("the player input Right"); }, //Direction::Left => { // println!(" the player input Left"); //} _ => { println!("Oh what's your input ?"); } }