相关疑难解决方法(0)

在模式匹配期间防止移动语义

我在这里有一个愚蠢的例子,只是为了演示我遇到的另一个库和模式匹配的问题.

struct Person {
    name: String,
    age: i32,
    choice: Choices
}

#[derive(Debug)]
enum Choices {
    Good,
    Neutral,
    Evil
}

fn find(p: Person) {
    match (p.choice, p.age) {
        (Choices::Good, a) if a < 80 => {
            announce(p);
        }
        (_, a) if a >= 80 => {
            println!("You're too old to care.");
        }
        _ => {
            println!("You're not very nice!")
        }
    }
}

fn announce(p: Person) {
    println!("Your name is {}. You are {:?}.", p.name, p.choice);
}

fn main() {
    let p …
Run Code Online (Sandbox Code Playgroud)

move pattern-matching rust

7
推荐指数
1
解决办法
2826
查看次数

标签 统计

move ×1

pattern-matching ×1

rust ×1