Raw識別子
Rustは他のプログラミング言語のように、「キーワード」を持っています。これは言語 レベルで意味がある単語であるため、変数名や、関数名などには使えません。Raw識別子は 本当は許可されていないキーワードを使うのに使われます。主に、これはRustが新しい キーワードを提供したが、ライブラリは古いエディションのRustを使っているため、変数名 や関数名とキーワードがかぶってしまうときに使います・
例えば、クレートfooがRust 2015を使っていて、tryという名前の関数を持っているとします。
Rust 2018では、これはキーワードとして使われているため、 Raw識別子なしではこの関数は
使えません。
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
Raw識別子を使うとこのように書けます。
extern crate foo;
fn main() {
foo::r#try();
}