Raw identifiers
Rust, як і багато мов програмування, має поняття “ключових слів”. Ці ідентифікатори означають щось для мови, і тому ви не можете використовувати їх у таких місцях, як імена змінних, імена функцій та інших місцях. Сирі ідентифікатори дають змогу використовувати ключові слова там, де їх зазвичай не дозволено. Це особливо корисно, коли Rust запроваджує нові ключові слова, а крейт , що використовує старіше видання Rust, має змінну або функцію з тією самою назвою , що й ключове слово, запроваджене в новішому виданні.
Наприклад, розгляньте крейт foo, скомпільований за виданням Rust 2015, який
експортує функцію з назвою 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();
}