关键词
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已被提升为严格关键词。
safe用于函数和静态项,在外部代码块中有特殊含义。
raw用于原始借用运算符,并且只有在匹配原始借用运算符形式(例如&raw const expr或&raw mut expr)时才是一个关键词。