文章
436
标签
52
分类
5
主页
博文
分类
标签
归档
生活
分享
相册
音乐
影视
友链
留言板
关于笔者
KAZAMAのBlog
搜索
主页
博文
分类
标签
归档
生活
分享
相册
音乐
影视
友链
留言板
关于笔者
Rust反复入门
发表于
2023-11-05
|
更新于
2023-11-05
|
字数总计:
6
|
阅读时长:
1分钟
|
阅读量:
Hey, password is required here.
文章作者:
KAZAMA
文章链接:
http://www.kazama.top/2023/11/05/Rust%E5%8F%8D%E5%A4%8D%E5%85%A5%E9%97%A8/2023-11-05-Rust%E5%8F%8D%E5%A4%8D%E5%85%A5%E9%97%A8/
版权声明:
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来自
KAZAMAのBlog
!
Rust
打赏
wechat
alipay
上一篇
项目简历
下一篇
Dynaconf入门
KAZAMA
技术记录,个人分享,学习备忘
文章
436
标签
52
分类
5
Follow Me
公告
This is my Blog
目录
1 猜数字游戏
1.1 创建新项目
1.2 处理一次猜测
1.3 生成一个秘密数字
1.4 比较猜测的数字和秘密数字
1.5 使用循环来允许多次猜测
2 通用编程概念
2.1 变量和可变性
2.1.1 可变性
2.1.2 常量
2.1.3 遮蔽
2.2 数据类型
2.2.1 标量类型
2.2.2 浮点类型
2.2.3 布尔类型
2.2.4 字符类型
2.2.5 复合类型
2.2.6 数组类型
2.3 函数
2.3.1 函数
2.3.2 语句和表达式
2.3.3 带有返回值的函数
2.4 控制流
2.4.1 if else表达式
2.4.2 在let语句中使用if
2.4.3 使用循环重复执行
2.4.4 从循环返回
2.4.5 while条件循环
2.4.6 使用for遍历集合
3 认识所有权
3.1 什么是所有权
3.1.1 所有权规则
3.1.2 变量作用域
3.1.3 内存与分配
3.1.4 变量与数据交互方式:移动
3.1.5 变量与数据交互发生:克隆
3.1.6 只在栈上的数据:拷贝
3.1.7 所有权与函数
3.1.8 返回值与作用域
3.2 引用与借用
3.2.1 引用
3.2.2 可变引用
3.2.3 悬垂引用(Dangling References)
3.2.4 引用的规则
3.3 切片slice
3.3.1 切片Slice类型
3.3.2 字符串slice
3.3.3 字符串字面量就是slice
3.3.4 字符串slice作为参数
3.3.5 其他类型的slice
4 使用结构体组织关联数据
4.1 定义和举例说明结构体
4.1.1 定义结构体
4.1.2 变量与字段同名时的字段初始化简写语法
4.1.3 使用结构体更新语法从其他实例创建实例
4.1.4 使用没有命名字段的元组结构体来创建不同的类型
4.1.5 没有任何字段的类单元结构体
4.2 使用结构体的代码例子
4.2.1 使用结构体的示例程序
4.2.2 通过派生trait增加实用功能
4.3 方法语法
4.3.1 定义方法
4.3.2 关联函数
4.3.3 多个impl块
5 枚举和模式匹配
5.1 定义枚举
5.1.1 自定义枚举
5.1.2 Option枚举和其相对于空值的优势
5.2 match控制流运算符
5.2.1 match是什么
5.2.2 绑定值的模式
5.2.3 匹配Option<T>
5.2.4 匹配是穷尽的
5.2.5 通配模式和_占位符
5.3 if let 简单控制流
6 使用包、Crate和模块管理不断增长的项目
6.1 包和crate
6.2 定义模块来控制作用域与私有性
6.3 路径用于引用模块树中的项
6.3.1 绝对路径与相对路径
6.3.2 使用pub关键字暴露路径
6.3.3 使用super起始的相对路径
6.3.4 创建公有的结构体和枚举
6.4 使用use关键字将名称引入作用域
6.4.1 使用use将模块引入作用域
6.4.2 创建惯用的use路径
6.4.3 使用as关键字提供新的名称
6.4.4 使用pub use重导出名称
6.4.5 使用外部包
6.4.6 嵌套路径来消除大量的use行
6.4.7 通过glob运算符将所有的公有定义引入作用域
6.5 将模块分割进不同文件
7 常见集合
7.1 使用vector存储一列值
7.1.1 新建vector
7.1.2 更新vector
7.1.3 丢弃vector时也会丢弃其所有元素
7.1.4 读取 vector 的元素
7.1.5 遍历 vector 中的元素
7.1.6 使用枚举来存储多种类型
7.2 使用字符串存储UTF-8编码的文本
7.2.1 什么是字符串?
7.2.2 新建字符串
7.2.3 使用 push_str 和 push 附加字符串
7.2.4 使用+运算符或format!宏拼接字符串
7.2.5 索引字符串
7.2.6 字节、标量值和字形簇!
7.2.7 字符串slice
7.2.8 遍历字符串的方法
7.3 在哈希map中存储键和关联值
7.3.1 新建一个哈希map
7.3.2 哈希map和所有权
7.3.3 访问哈希map中的值
7.3.4 更新哈希map
7.3.5 哈希函数
9 错误处理
9.1 panic! 与不可恢复的错误
9.1.1 panic!时栈展开或终止
9.1.2 使用 panic! 的 backtrace
9.2 Result与可恢复的错误
9.2.1 Result枚举类型
9.2.2 匹配不同的错误
9.2.3 失败时panic的简写:unwrap 和 expect
9.2.4 传播错误
9.2.5 传播错误的简写:? 运算符
9.2.6 ?运算符可被用于返回Result的函数
9.3 panic! 还是不 panic!
9.3.1 使用还是不使用?
9.3.2 示例、代码原型和测试都非常适合panic
9.3.3 当我们比编译器知道更多的情况
9.3.4 错误处理指导原则
9.3.5 创建自定义类型进行有效性验证
10 泛型、trait与生命周期
10.1 泛型引入
10.1.1 何为泛型
10.1.2 提取函数来减少重复
10.2 泛型数据类型
10.2.1 在函数定义中使用泛型
10.2.2 结构体定义中的泛型
10.2.3 枚举定义中的泛型
10.2.4 方法定义中的泛型
10.2.5 泛型代码的性能
10.3 trait:定义共享的行为
10.3.1 定义trait
10.3.2 为类型实现trait
10.3.3 默认实现
10.3.4 trait作为参数
10.3.5 Trait Bound语法
10.3.6 通过 + 指定多个 trait bound
10.3.7 通过where简化trait bound
10.3.8 返回实现了trait的类型
10.3.9 使用 trait bounds 来修复 largest 函数
10.3.10 使用 trait bound 有条件地实现方法
10.4 生命周期与引用有效性
10.4.1 生命周期避免了悬垂引用
10.4.2 借用检查器
10.4.3 函数中的泛型生命周期
10.4.4 生命周期标注语法
10.4.5 函数签名中的生命周期标注
10.4.6 深入理解生命周期
10.4.7 结构体定义中的生命周期标注
10.4.8 生命周期省略(Lifetime Elision)
10.4.9 方法定义中的生命周期标注
10.4.10 静态生命周期
10.4.11 结合泛型类型参数、trait bounds 和 生命周期
11 编写自动化测试
11.1 如何编写测试
11.2 控制测试如何运行
11.3 测试的组织结构
最新文章
浙西天路、皖浙天路超级自驾攻略
2025-10-05
READ ME
2025-09-29
嵌入式裸机与RTOS对比
2025-09-28
嵌入式架构之万物皆可状态机
2025-09-23
嵌入式软件架构的认识
2025-09-21
繁
搜索
数据库加载中