根据文档Option,Option是一个变体Some<T>和枚举None.
为什么可以引用Some和None不引用它们?
例如,这工作正常:
let x = Option::Some(5);
match x {
Some(a) => println!("Got {}", a),
None => println!("Got None"),
}
Run Code Online (Sandbox Code Playgroud)
但这无法编译:
enum Foo<T> {
Bar(T),
Baz,
}
let x = Foo::Bar(5);
match x {
Bar(a) => println!("Got {}", a),
Baz => println!("Got Baz"),
}
Run Code Online (Sandbox Code Playgroud)
编译器的错误是 unresolved enum variant, struct or const `Bar`
假设输入字符串+123-321+123 345,使用PHP的正则表达式函数,我想删除所有非数字([^\d])字符,除了+开头的字符.的+可能或可能不存在,所以给出的字符串123-321+123 345的结果应该是相同的(123321123345).
目前的解决方法是检查+,然后运行preg_replace('/[^\d]+/', '', $string),但我确信必须有一个纯正则表达式来解决这个问题.
谢谢!