如何匹配Rust中的字符串

时间:2016-06-06 00:22:22

标签: string rust

我尝试在Rust lang中匹配String,但我不能:

for (key, value) in obj.iter() {
    let valueType = match Some(value.to_string()) {
        Some(ref x) if x == "some_value" => string_gen(),
        _ => "test".to_string()
    };
    println!("{}", value);
    println!("{}", valueType);
}

当迭代器的值为“some_value”时,我必须匹配“some_value”这个词

我做了很多搜索,并且有很多人遇到同样的问题。

1 个答案:

答案 0 :(得分:2)

您可以通过&str中的String来完成此操作,例如:

match Some(&*value.to_string()) {
    Some("some_value") => string_gen(),
    _ => "test".to_string()
}

但是直接匹配String的模式:不,你不能。模式匹配完全是结构比较,而不是像==这样的任意用户定义的代码比较。 String是一个包含少量私有字段的结构类型,因此您无法匹配其内部。你只能得到一个可以比较的&str

相关问题