原始标识符

Rust 和许多编程语言一样,有"关键字"的概念。这些标识符在语言中具有特殊含义,因此你不能在变量名、函数名等地方使用它们。原始标识符允许你在通常不允许使用关键字的地方使用它们。这在 Rust 引入新关键字,而使用旧版本 Rust 的库中有与新版本引入的关键字同名的变量或函数时特别有用。

例如,假设有一个使用 Rust 2015 版编译的 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();
}