乐闻世界logo
搜索文章和话题

Rust中的“@”符号有什么作用?

2 个月前提问
2 个月前修改
浏览次数18

1个答案

1

在 Rust 中,@ 符号被用作模式绑定的一部分,允许您在进行模式匹配的同时,将匹配的值绑定到一个变量。这是一种将模式匹配与值捕获相结合的便捷方式。

例如,假设我们有一个枚举类型表示一些交通工具的种类,以及这些交通工具的具体型号:

rust
enum Vehicle { Car(String), Bicycle(String), Scooter(String), } fn main() { let my_vehicle = Vehicle::Car("Toyota".to_string()); match my_vehicle { Vehicle::Car(model @ "Toyota") => println!("It's a Toyota car, model {}", model), Vehicle::Car(model) => println!("It's some other car, model {}", model), _ => println!("It's not a car"), } }

在这个示例中,我们的 match 语句不仅检查 my_vehicle 是否是一个 Vehicle::Car 类型,而且还检查车的型号是否为 "Toyota"。如果型号确实是 "Toyota",它将 "Toyota" 字符串绑定到变量 model,然后在 println! 宏中使用这个变量。

这种使用 @ 的模式匹配非常有用,因为它允许您在执行模式匹配的同时,直接访问和使用那些符合特定条件的值。

2024年7月17日 19:40 回复

你的答案