Rust 什么是'@';你在生锈吗?
我忘记指定参数的类型,错误消息如下:Rust 什么是'@';你在生锈吗?,rust,Rust,我忘记指定参数的类型,错误消息如下: 错误:应为`:`或`@`中的一个,找到`)` -->src/main.rs:2:12 | 2 | fn func(arg) |^此处应为“:”或“@”之一 这就提出了一个问题:你能用@符号做什么?我不记得读过关于在任何事情上使用@符号的文章。我也在谷歌上搜索了一下,什么也没找到。@做什么?您可以使用@符号将图案绑定到名称。作为: 防锈作业(前提是完整的)和。在@的特定情况下,这不是很有用,因为您已经可以命名匹配的参数。但是,为了完整起见,以下是一个示例:
错误:应为`:`或`@`中的一个,找到`)`
-->src/main.rs:2:12
|
2 | fn func(arg)
|^此处应为“:”或“@”之一
这就提出了一个问题:你能用
@
符号做什么?我不记得读过关于在任何事情上使用@
符号的文章。我也在谷歌上搜索了一下,什么也没找到。@
做什么?您可以使用@
符号将图案绑定到名称。作为:
防锈作业(前提是完整的)和。在@
的特定情况下,这不是很有用,因为您已经可以命名匹配的参数。但是,为了完整起见,以下是一个示例:
enum MyEnum {
TheOnlyCase(u8),
}
fn my_fn(x @ MyEnum::TheOnlyCase(_): MyEnum) {}
“这是我的,”谢普马斯特,太酷了,谢谢!当我阅读时,我想它终于为我点击了——但我说带
@
的模式绑定是警卫的简写,对吗?例如,E如果1@SeanAllred,那肯定是一种看待它的方式。在我给出的例子中,你基本上是正确的。我唯一要提到的是,模式可以嵌套,让我们将结构的不同部分绑定到不同的名称:a@Some(p@Point{x=5,…})
现在a
有type选项
和p
有type点
。
enum MyEnum {
TheOnlyCase(u8),
}
fn my_fn(x @ MyEnum::TheOnlyCase(_): MyEnum) {}