Сырые идентификаторы

В Rust, как и во многих других языках программирования, существует концепция "ключевых слов". Эти идентификаторы что-то значат для языка и из-за этого вы не можете использовать их в качестве названия переменных, именах функций и других местах. Сырые идентификаторы позволяют использовать ключевые слова там, где они обычно не разрешены. Это особенно полезно, когда Rust вводит новые ключевые слова и библиотеки, использующие старую редакцию Rust, имеют переменные или функции с таким же именем, как и ключевое слово, введённое в новой редакции.

Например, рассмотрим крейт foo, скомпилированный с 2015 редакцией Rust, и который экспортирует функцию с именем 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();

}

Загрузка...