I forgot to specify the type of a parameter and the error message was as follows:
error: expected one of `:` or `@`, found `)`
--> src/main.rs:2:12
|
2 | fn func(arg)
| ^ expected one of `:` or `@` here
Which raises the question: what can you do with an @
symbol? I don't remember reading about using the @
symbol for anything. I also did some Googling and couldn't find anything. What does @
do?
You can use the
@
symbol to bind a pattern to a name. As the Rust Reference demonstrates:Assignments in Rust allow pattern expressions (provided they are complete) and argument lists are no exception. In the specific case of
@
, this isn't very useful because you can already name the matched parameter. However, for completeness, here is an example which compiles: