Ключевые слова
Rust делит ключевые слова на три категории:
Строгие ключевые слова
Эти ключевые слова можно использовать только в соответствующих контекстах. Они не могут быть использованы в качестве имён:
- Элементов items
- [Переменных (Variables)]и параметров функций
- Полей и вариантов (variants)
- Параметров типов (Type parameters)
- Параметров времени жизни или меток циклов (loop labels)
- Макросов (Macros) или атрибутов (attributes)
- Заполнителей макросов (Macro placeholders)
- Крейтов (Crates)
Следующие ключевые слова присутствуют во всех редакциях (editions):
_asasyncawaitbreakconstcontinuecratedynelseenumexternfalsefnforifimplinletloopmatchmodmovemutpubrefreturnselfSelfstaticstructsupertraittruetypeunsafeusewherewhile
2018 Edition differences
Следующие ключевые слова были добавлены в редакции 2018:
asyncawaitdyn
Зарезервированные ключевые слова
Эти ключевые слова ещё не используются, но они зарезервированы для будущего использования. На них распространяются те же ограничения, что и на строгие ключевые слова. Причина этого заключается в том, чтобы обеспечить прямую совместимость текущих программ с будущими версиями Rust, запрещая им использовать эти ключевые слова.
abstractbecomeboxdofinalgenmacrooverrideprivtrytypeofunsizedvirtualyield
2018 Edition differences
Ключевое слово
tryбыло добавлено как зарезервированное в редакции 2018.
2024 Edition differences
Ключевое слово
genбыло добавлено как зарезервированное в редакции 2024.
Слабые ключевые слова
Эти ключевые слова имеют особое значение только в определённых контекстах. Например, можно объявить переменную или метод с именем union.
'staticmacro_rulesrawsafeunion
macro_rulesиспользуется для создания пользовательских Macros.
unionиспользуется для объявления union и является ключевым словом только при использовании в объявлении объединения.
-
'staticиспользуется для статического времени жизни и не может быть использован в качестве обобщённого параметра времени жизни (generic lifetime parameter) или loop label// error[E0262]: invalid lifetime parameter name: `'static` fn invalid_lifetime_parameter<'static>(s: &'static str) -> &'static str { s }
safeиспользуется для функций и статических переменных и имеет значение внутри внешних блоков (external blocks).
rawиспользуется для операторов сырого заимствования (raw borrow operators) и является ключевым словом только при сопоставлении с формой оператора сырого заимствования (например,&raw const exprили&raw mut expr).
2018 Edition differences
В редакции 2015
dynявляется ключевым словом, когда используется в позиции типа, за которым следует путь, не начинающийся с::или<, время жизни, знак вопроса, ключевое словоforили открывающая скобка.Начиная с редакции 2018,
dynбыл повышен до строгого ключевого слова.