关键字
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