我忘记指定参数的类型,错误消息如下:
error: expected one of `:` or `@`, found `)`
--> src/main.rs:2:12
|
2 | fn func(arg)
| ^ expected one of `:` or `@` here
这就引出了一个问题:你能用@
符号做什么?我不记得读过关于用@
符号做任何事的书.我也在谷歌上搜索了一下,什么也没找到.@
是做什么的?
我忘记指定参数的类型,错误消息如下:
error: expected one of `:` or `@`, found `)`
--> src/main.rs:2:12
|
2 | fn func(arg)
| ^ expected one of `:` or `@` here
这就引出了一个问题:你能用@
符号做什么?我不记得读过关于用@
符号做任何事的书.我也在谷歌上搜索了一下,什么也没找到.@
是做什么的?
可以使用@
符号将图案绑定到名称.作为Rust Reference demonstrates人:
let x = 1;
match x {
e @ 1 ... 5 => println!("got a range element {}", e),
_ => println!("anything"),
}
Rust allow pattern expressions(如果完成)和argument lists are no exception中的作业(job).在@
的特定情况下,这不是很有用,因为您已经可以命名匹配的参数.然而,为了完整起见,以下是一个示例:
enum MyEnum {
TheOnlyCase(u8),
}
fn my_fn(x @ MyEnum::TheOnlyCase(_): MyEnum) {}