如何将结构中的String与常量值匹配?

Dav*_*Roe 3 pattern-matching rust

是否可以String使用静态str值匹配Rust中的结构?这是一个最小的例子:

struct SomeStruct {
    a: String,
}

fn main() {
    let s = SomeStruct {
        a: "Test".to_string(),
    };
    match s {
        SomeStruct { a: "Test" } => {
            println!("Match");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这将无法编译,因为静态str引用无法与String成员匹配.它可以在没有解构的情况下工作a,然后在匹配中添加嵌套的if语句吗?

Chr*_*gan 5

目前无法以单一模式执行此操作,但有时可能会成为可能.目前,使用模式和匹配防护替换模式可能最简单,如下所示:

match s {
    SomeStruct { ref a } if a == "Test" => {
        println!("Match");
    }
}
Run Code Online (Sandbox Code Playgroud)