原始标识符

像许多编程语言一样,Rust 也有“关键字”的概念。这些标识符对语言有意义,因此您不能在变量名、函数名和其他地方使用它们。原始标识符允许您在通常不允许的地方使用关键字。当 Rust 引入新的关键字时,以及使用旧版 Rust 的库具有与新版本中引入的关键字同名的变量或函数时,这尤其有用。

例如,考虑一个使用 2015 版 Rust 编译的 crate foo,它导出一个名为 try 的函数。这个关键字是为 2018 版中的新特性保留的,所以如果没有原始标识符,我们将无法命名这个函数。

extern crate foo;

fn main() {
    foo::try();
}

你会得到这个错误

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

你可以用原始标识符这样写

extern crate foo;

fn main() {
    foo::r#try();
}