关键字

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

保留字

以下关键字目前还未使用,但保留以供将来使用,使用规则与严格字相同。 这是为了使当前程序与未来版本向前兼容。

词法
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

松散字

以下关键字只有在特定上下文中才具有关键字的含义。 因而,比如可以使用名称 union 声明变量或方法。

  • macro_rules 用于创建自定义

  • union 用于声明 联合体

  • 'static 用于静态生命周期,不能作为 泛型生命周期参数循环标签 使用。

    // error[E0262]: invalid lifetime parameter name: `'static`
    fn invalid_lifetime_parameter<'static>(s: &'static str) -> &'static str { s }
    
  • 在 2015 版中,dyn 为松散字,当用在类型位置且随后的路径不以 :: 开头时,才解析为关键字。

    从 2018 版开始, dyn 已提升为严格字。

词法
KW_UNION : union
KW_STATICLIFETIME : 'static

词法 2015
KW_DYN : dyn