关键字

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

弱关键字

这些关键字仅在某些上下文中具有特殊含义。例如,可以使用名称 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_MACRO_RULES : macro_rules

KW_UNION : union

KW_STATICLIFETIME : 'static

词法分析器 2015

KW_DYN : dyn