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