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 делит ключевые слова на три категории:

Строгие ключевые слова

Эти ключевые слова можно использовать только в соответствующих контекстах. Они не могут быть использованы в качестве имён:

Следующие ключевые слова присутствуют во всех редакциях (editions):

  • _
  • as
  • async
  • await
  • break
  • const
  • continue
  • crate
  • dyn
  • else
  • enum
  • extern
  • false
  • fn
  • for
  • if
  • impl
  • in
  • let
  • loop
  • match
  • mod
  • move
  • mut
  • pub
  • ref
  • return
  • self
  • Self
  • static
  • struct
  • super
  • trait
  • true
  • type
  • unsafe
  • use
  • where
  • while

2018 Edition differences

Следующие ключевые слова были добавлены в редакции 2018:

  • async
  • await
  • dyn

Зарезервированные ключевые слова

Эти ключевые слова ещё не используются, но они зарезервированы для будущего использования. На них распространяются те же ограничения, что и на строгие ключевые слова. Причина этого заключается в том, чтобы обеспечить прямую совместимость текущих программ с будущими версиями Rust, запрещая им использовать эти ключевые слова.

  • abstract
  • become
  • box
  • do
  • final
  • gen
  • macro
  • override
  • priv
  • try
  • typeof
  • unsized
  • virtual
  • yield

2018 Edition differences

Ключевое слово try было добавлено как зарезервированное в редакции 2018.

2024 Edition differences

Ключевое слово gen было добавлено как зарезервированное в редакции 2024.

Слабые ключевые слова

Эти ключевые слова имеют особое значение только в определённых контекстах. Например, можно объявить переменную или метод с именем union.

  • 'static
  • macro_rules
  • raw
  • safe
  • union
  • 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 был повышен до строгого ключевого слова.