0
我有一个字符串输入,需要被分成值和模式匹配,所以我正在寻找最好的方式来做到这一点。字符串分割模式匹配和提取值
这是我到目前为止。
fn main() {
let s: &str = "A 1 2 3 4";
let v: Vec<&str> = s.split(" ").collect();
match &v[..] {
[letter, x1, x2, x3] => println!("{:?}", letter), //do something with values
[letter, x1, x2, x3, x4] => println!("{:?}", letter), //do something with values
_ => println!("no match")
}
}
我有几个问题,这种方法:
- 这段代码产生错误
error: slice pattern syntax is experimental (see issue #23121)
所以我假设我必须每晚使用它的工作?我还需要为它导入任何附加模块吗? - 是否有一个类似的简单方法,不需要每晚?
- 有没有一种优雅的方式来进一步匹配拉整数值?例如,是否有可能将矢量转换为元组,以便
("A", 1, 2, 3, 4)
匹配并且("A", 1, 2, "D")
不会?
我不认为这是值得一个完整的答案,但这是['scan-rules'](https://crates.io/crates/scan-rules)箱设计的。 –