【发布时间】:2016-03-28 13:01:59
【问题描述】:
我有一个字符串输入需要拆分为值和模式匹配,所以我正在寻找最好的方法。
这是我到目前为止所得到的。
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")不匹配?
【问题讨论】:
标签: rust pattern-matching