Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

生識別子

Rust には、多くのプログラミング言語と同様に「キーワード」という概念があります。 これらの識別子は言語にとって意味を持つため、変数名、関数名、その他の場所では使用できません。 生識別子を使用すると、通常は許可されない場所でキーワードを使用できます。 これは、Rust が新しいキーワードを導入し、古いエディションの Rust を使用しているライブラリに、新しいエディションで導入されたキーワードと同じ名前の変数や関数がある場合に特に便利です。

たとえば、2015 エディションの Rust でコンパイルされたクレート 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();
}