原始标志符

与许多编程语言一样,Rust 拥有“关键字”的概念。 这些标识符对语言有特定意义,所以不能在变量名、函数名和其他位置使用它们。 原始标识符允许你使用通常不允许的关键字。 当 Rust 引入新关键字时,使用旧版 Rust 的库拥有与新版本中引入的关键字同名的变量或函数,这一点就特别有用。

举个例子,使用 2015 版 Rust 编译的 crate foo,它导出一个名为 try 的函数。 此关键字(try)在 2018 版本的新功能中保留下来,因此如果没有原始标识符,我们将无法命名该功能。

  1. extern crate foo;
  2. fn main() {
  3. foo::try();
  4. }

将得到如下错误:

  1. error: expected identifier, found keyword `try`
  2. --> src/main.rs:4:4
  3. |
  4. 4 | foo::try();
  5. | ^^^ expected identifier, found keyword

使用原始标志符重写上述代码:

  1. extern crate foo;
  2. fn main() {
  3. foo::r#try();
  4. }