附录A. Rust 关键字速查表
附录A. Rust 关键字速查表本附录提供 Rust 语言所有关键字的完整速查表包括当前使用的关键字、保留关键字以及特殊标识符。当前使用的关键字声明与定义类关键字用途示例fn定义函数或方法fn add(a: i32, b: i32) - i32 { a b }let声明变量绑定let x 5;mut声明可变变量或引用let mut count 0;const定义编译时常量const MAX_SIZE: usize 100;static定义静态变量全局生命周期static GLOBAL: i32 42;struct定义结构体struct Point { x: i32, y: i32 }enum定义枚举类型enum Color { Red, Green, Blue }union定义联合体unsafeunion Data { i: i32, f: f32 }type定义类型别名type ResultT std::result::ResultT, Error;trait定义 Trait接口trait Draw { fn draw(self); }impl实现方法或 Traitimpl Point { fn new() - Self { ... } }控制流类关键字用途示例if条件分支if x 0 { println!(positive); }else条件分支的否定情况if x 0 { ... } else { ... }match模式匹配match value { Some(x) x, None 0 }loop无限循环loop { break; }while条件循环while count 10 { count 1; }for迭代循环for i in 0..10 { println!({}, i); }break跳出循环loop { if done { break; } }continue跳过本次循环for i in 0..10 { if i % 2 0 { continue; } }return从函数返回fn get_value() - i32 { return 42; }模块与可见性类关键字用途示例mod定义模块mod utils { pub fn helper() {} }pub公开可见性pub struct Point { pub x: i32 }use导入路径到作用域use std::collections::HashMap;crate当前 crate 的根路径use crate::utils::helper;super父模块路径use super::parent_function;self当前模块路径或方法接收者use self::inner_mod;或fn method(self)Self实现类型的别名impl Point { fn new() - Self { ... } }extern链接外部 crate 或声明外部函数extern crate serde;或extern C { fn abs(x: i32) - i32; }所有权与生命周期类关键字用途示例ref在模式中创建引用let ref x 5;等价于let x 5;move强制闭包获取所有权let closure move || println!({}, x);as类型转换或重命名导入let x 5 as f64;或use std::io::Result as IoResult;where泛型约束子句fn funcT(x: T) where T: Display { ... }dyn动态分发 Trait 对象let obj: Boxdyn Draw Box::new(circle);异步编程类关键字用途示例async定义异步函数或块async fn fetch_data() - String { ... }await等待异步操作完成let data fetch_data().await;Unsafe 与 FFI 类关键字用途示例unsafe标记不安全代码块或函数unsafe { *raw_ptr 42; }宏与属性类关键字用途示例macro_rules!定义声明式宏macro_rules! say_hello { () { println!(Hello!); } }其他关键字关键字用途示例infor循环的一部分for item in collection { ... }box堆分配已弃用使用Box::newlet b box 5;(不推荐)保留关键字2015 Edition这些关键字在 Rust 2015 Edition 中保留但尚未使用为未来功能预留关键字预留用途abstract可能用于抽象类型或方法become可能用于尾调用优化do可能用于循环或块final可能用于继承控制macro可能用于宏定义已部分使用override可能用于方法重写priv可能用于私有可见性typeof可能用于类型查询unsized可能用于动态大小类型virtual可能用于虚方法yield可能用于生成器已在 nightly 中使用保留关键字2018 EditionRust 2018 Edition 及之后新增的保留关键字关键字预留用途try可能用于错误处理已有try块在 nightly特殊标识符这些不是严格的关键字但在特定上下文中有特殊含义生命周期标识符标识符含义示例static静态生命周期整个程序运行期间let s: static str hello;_匿名生命周期编译器推断fn func(x: _ str) { ... }特殊路径标识符含义示例$crate宏中引用定义宏的 crate$crate::utils::helper()特殊属性标识符含义示例cfg条件编译#[cfg(target_os linux)]test标记测试函数#[test] fn test_add() { ... }derive自动派生 Trait#[derive(Debug, Clone)]allow/warn/denyLint 控制#[allow(dead_code)]关键字使用注意事项1. 原始标识符Raw Identifiers如果需要使用关键字作为标识符名称可以使用r#前缀// 使用关键字作为变量名letr#fnfunction name;letr#matchmatch keyword;// 使用关键字作为函数名fnr#return()-i32{42}// 调用letresultr#return();使用场景与其他语言的 FFI 交互时对方的函数名可能是 Rust 关键字与旧版本 Rust 代码兼容2. 关键字的上下文敏感性某些标识符只在特定上下文中是关键字// union 是关键字但可以作为字段名structData{union:bool,// ❌ 编译错误}// 需要使用原始标识符structData{r#union:bool,// ✅ 正确}3. Edition 差异不同 Edition 的关键字可能不同// Rust 2015: async 不是关键字letasync5;// ✅ 在 2015 Edition 中可以// Rust 2018: async 是关键字letasync5;// ❌ 编译错误letr#async5;// ✅ 使用原始标识符常见关键字组合模式1. 函数定义模式// 基本函数fnfunction_name(){}// 带参数和返回值fnadd(a:i32,b:i32)-i32{ab}// 泛型函数fngenericT(value:T)-T{value}// 带生命周期fnlongesta(x:astr,y:astr)-astr{x}// 异步函数asyncfnfetch()-String{data.to_string()}// Unsafe 函数unsafefndangerous(){}// 外部函数externCfncallback(){}// 常量函数constfnconst_add(a:i32,b:i32)-i32{ab}2. 结构体与实现模式// 定义结构体pubstructPoint{pubx:i32,puby:i32,}// 实现方法implPoint{pubfnnew(x:i32,y:i32)-Self{Self{x,y}}pubfndistance(self)-f64{((self.x.pow(2)self.y.pow(2))asf64).sqrt()}}// 实现 Traitimplstd::fmt::DisplayforPoint{fnfmt(self,f:mutstd::fmt::Formatter)-std::fmt::Result{write!(f,({}, {}),self.x,self.y)}}3. 模块与导入模式// 定义模块modutils{pubfnhelper(){}pub(crate)fninternal(){}pub(super)fnparent_only(){}}// 导入usestd::collections::HashMap;usestd::io::{self,Read,Write};usecrate::utils::helper;usesuper::parent_function;// 重导出pubuseself::utils::helper;4. 匹配与控制流模式// match 表达式matchvalue{Some(x)ifx0println!(positive),Some(x)println!(non-positive),Noneprintln!(none),}// if letifletSome(x)option_value{println!({},x);}// while letwhileletSome(x)iterator.next(){println!({},x);}// for 循环foriin0..10{ifi%20{continue;}println!({},i);}// loop 带标签outer:loop{loop{breakouter;}}快速查找索引按功能分类变量与常量let,mut,const,static类型定义struct,enum,union,type,trait实现impl,fn控制流if,else,match,loop,while,for,break,continue,return模块系统mod,pub,use,crate,super,self,Self,extern所有权ref,move,as泛型与约束where,dyn异步async,await安全unsafe宏macro_rules!按字母排序as,async,await,break,const,continue,crate,dyn,else,enum,extern,fn,for,if,impl,in,let,loop,match,mod,move,mut,pub,ref,return,self,Self,static,struct,super,trait,type,union,unsafe,use,where,while本附录小结Rust 当前有40 个活跃关键字涵盖声明、控制流、模块、所有权、异步等各个方面保留关键字为未来功能预留不能用作标识符使用原始标识符(r#keyword) 可以在必要时使用关键字作为名称不同Edition的关键字集合可能不同升级时需注意理解关键字的组合模式有助于快速编写惯用的 Rust 代码提示将本速查表保存为书签在编码时快速查阅

相关新闻

深入解析FSI模块:软件触发Ping帧与DMA传输机制

深入解析FSI模块:软件触发Ping帧与DMA传输机制

1. FSI模块核心机制与设计思路拆解 在嵌入式实时控制系统中,处理器与外设或处理器之间的高速、可靠数据通信是系统稳定运行的基石。德州仪器(TI)的TMS320F28004x系列微控制器集成的快速串行接口(Fast Serial Interface&#xff0c…

2026/10/14 4:49:35 阅读更多 →
AI伦理三脚架:原则、流程与工具的落地断层解析

AI伦理三脚架:原则、流程与工具的落地断层解析

1. 项目概述:一个被反复加固却始终晃动的伦理支架 “IBM’s AI Ethics”这个短语在2018年前后曾是科技伦理领域最常被引用的正面案例之一——它代表一家老牌科技巨头主动设立AI原则、公开发布《AI价值观白皮书》、成立跨部门AI伦理委员会、甚至宣布退出面部识别商业…

2026/10/13 17:54:05 阅读更多 →
Java面试突击:从八股文背诵到构建最小知识体系与问题拆解框架

Java面试突击:从八股文背诵到构建最小知识体系与问题拆解框架

最近和几个准备秋招的朋友聊天,发现一个挺有意思的现象:大家手里都攒着几十个G的面试资料,从“Java面试宝典”到“八股文大全”,应有尽有。但真坐下来准备时,却感觉无从下手,知识点像一盘散沙,背…

2026/10/9 17:40:11 阅读更多 →

最新新闻

Spark集合操作全解析:union、join、笛卡尔积的原理与性能陷阱

Spark集合操作全解析:union、join、笛卡尔积的原理与性能陷阱

如果你处理过这样一个需求——把两份来源不同的用户数据合并成一份,或者找出最近30天活跃用户和付费用户的重叠人群,又或者把订单表关联到用户维度表上做统计——你大概率会第一时间想到Spark。但在Spark里,“集合”这个概念被拆成了好几组AP…

2026/10/14 4:50:57 阅读更多 →
从123456到密码管理器:弱密码破解原理与账号安全加固指南

从123456到密码管理器:弱密码破解原理与账号安全加固指南

1. 从“123456”说起:这个最熟悉的数字串到底藏了多少坑我敢打赌,看到“123456”这四个字的瞬间,你脑子里闪过的绝对不是一串数字,而是某个网站的登录页、某个多年没改过的密码,或者某次帮亲戚重装系统时顺手敲下的默认…

2026/10/14 4:50:57 阅读更多 →
轻量模型部署实战:3.8B开源模型从能跑到跑稳

轻量模型部署实战:3.8B开源模型从能跑到跑稳

这个标题是我某天半夜临时建的一个内部备忘录。Strata 是我们那边的统一推理服务层,3.8-Flash-Next 是某开源语言模型项目跑出来的一个轻量分支,参数体量不大,但做生产化接入的时候问题一点不比大模型少。后来这句话被同事转述成“Strata 跑 …

2026/10/14 4:50:57 阅读更多 →
Strata平台部署Qwen3.8-Flash-Next实战:从模型加载到接口调优全记录

Strata平台部署Qwen3.8-Flash-Next实战:从模型加载到接口调优全记录

前几天我们内部接到一个挺常见的任务:一台GPU服务器,一个刚拿到的轻量级模型,要在“Strata”这个内部自研的部署平台上跑起来,对外提供HTTP接口,给业务方调用。模型代号叫“Qwen3.8-Flash-Next”,名字看起来…

2026/10/14 4:50:57 阅读更多 →
前端性能优化实战:从浏览器渲染原理到加载与交互调优

前端性能优化实战:从浏览器渲染原理到加载与交互调优

前端性能优化这个话题,我在团队内部讲过很多次,每次讲完都觉得还能再展开不少。最近接了一个业务线的性能专项,把从前端资源加载到交互流畅度这条链路重新捋了一遍,顺手把过程中的经验和踩过的坑整理下来。这篇文章适合两类人看&a…

2026/10/14 4:50:57 阅读更多 →
大模型预判RTL综合PPA:数字前端设计的实时物理实现顾问

大模型预判RTL综合PPA:数字前端设计的实时物理实现顾问

1. 项目概述:这不是又一个“大模型EDA”的概念秀,而是RTL设计流程里真实卡点的破局尝试PPA-RTL——这个标题里没有花哨的缩写游戏,PPA就是功耗(Power)、性能(Performance)、面积(Are…

2026/10/14 4:49:57 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →