关键词

Rust 将关键词分为三类

严格关键词

这些关键词只能在其正确的上下文中使用。它们不能用作以下项的名称:

词法分析器:
KW_AS : as
KW_BREAK : break
KW_CONST : const
KW_CONTINUE : continue
KW_CRATE : crate
KW_ELSE : else
KW_ENUM : enum
KW_EXTERN : extern
KW_FALSE : false
KW_FN : fn
KW_FOR : for
KW_IF : if
KW_IMPL : impl
KW_IN : in
KW_LET : let
KW_LOOP : loop
KW_MATCH : match
KW_MOD : mod
KW_MOVE : move
KW_MUT : mut
KW_PUB : pub
KW_REF : ref
KW_RETURN : return
KW_SELFVALUE : self
KW_SELFTYPE : Self
KW_STATIC : static
KW_STRUCT : struct
KW_SUPER : super
KW_TRAIT : trait
KW_TRUE : true
KW_TYPE : type
KW_UNSAFE : unsafe
KW_USE : use
KW_WHERE : where
KW_WHILE : while

以下关键词是自 2018 版开始添加的。

词法分析器 2018+
KW_ASYNC : async
KW_AWAIT : await
KW_DYN : dyn

保留关键词

这些关键词尚未使用,但已保留供将来使用。它们具有与严格关键词相同的限制。这样做的理由是通过禁止当前程序使用这些关键词来使其与未来的 Rust 版本向前兼容。

词法分析器
KW_ABSTRACT : abstract
KW_BECOME : become
KW_BOX : box
KW_DO : do
KW_FINAL : final
KW_MACRO : macro
KW_OVERRIDE : override
KW_PRIV : priv
KW_TYPEOF : typeof
KW_UNSIZED : unsized
KW_VIRTUAL : virtual
KW_YIELD : yield

以下关键词是自 2018 版开始保留的。

词法分析器 2018+
KW_TRY : try

以下关键词是自 2024 版开始保留的。

词法分析器 2024+
KW_GEN : gen

弱关键词

这些关键词只在特定上下文中有特殊含义。例如,可以用 union 作为变量或方法的名称。

词法分析器
KW_MACRO_RULES : macro_rules
KW_UNION : union
KW_STATICLIFETIME : 'static
KW_SAFE : safe
KW_RAW : raw

词法分析器 2015
KW_DYN : dyn

  • macro_rules 用于创建自定义
  • union 用于声明一个联合体,并且只有在联合体声明中使用时才是一个关键词。
  • 'static 用于静态生命周期,不能用作泛型生命周期参数循环标签

    // error[E0262]: invalid lifetime parameter name: `'static`
    fn invalid_lifetime_parameter<'static>(s: &'static str) -> &'static str { s }
    
  • 在 2015 版中,当dyn 用于类型位置,后面跟着的路径不以 ::< 开头,或者后面跟着生命周期、问号、for 关键词或左括号时,它是一个关键词。

    自 2018 版开始,dyn 已被提升为严格关键词。

  • raw 用于原始借用运算符,并且只有在匹配原始借用运算符形式(例如 &raw const expr&raw mut expr)时才是一个关键词。