关键字
Rust 将关键字分为三类:
严格关键字
这些关键字只能在其正确的上下文中使用。它们不能用作以下内容的名称:
以下关键字在所有版本中都存在:
_asasyncawaitbreakconstcontinuecratedynelseenumexternfalsefnforifimplinletloopmatchmodmovemutpubrefreturnselfSelfstaticstructsupertraittruetypeunsafeusewherewhile
2018 Edition differences
以下关键字在 2018 版本中添加:
asyncawaitdyn
保留关键字
这些关键字尚未使用,但被保留供将来使用。它们与严格关键字具有相同的限制。其背后的原因是通过禁止当前程序使用这些关键字,使当前程序与 Rust 的未来版本向前兼容。
abstractbecomeboxdofinalgenmacrooverrideprivtrytypeofunsizedvirtualyield
2018 Edition differences
try关键字在 2018 版本中作为保留关键字添加。
2024 Edition differences
gen关键字在 2024 版本中作为保留关键字添加。
弱关键字
这些关键字仅在某些上下文中具有特殊含义。例如,可以声明名为 union 的变量或方法。
'staticmacro_rulesrawsafeunion
macro_rules用于创建自定义宏。
union用于声明联合体,仅在联合体声明中使用时才是关键字。
-
'static用于静态生命周期,不能用作泛型生命周期参数或循环标签// error[E0262]: invalid lifetime parameter name: `'static` fn invalid_lifetime_parameter<'static>(s: &'static str) -> &'static str { s }
safe用于函数和静态变量,在外部块中具有意义。
raw用于原始借用运算符,仅在匹配原始借用运算符形式(如&raw const expr或&raw mut expr)时才是关键字。
2018 Edition differences
在 2015 版本中,当
dyn在类型位置使用,后跟不以::或<开头的路径、生命周期、问号、for关键字或左括号时,它是关键字。从 2018 版本开始,
dyn已被提升为严格关键字。