合集-Rust
摘要:
无畏并发 并发 Concurrent:程序的不同部分之间独立的执行(并发) Parallel:程序的不同部分同时运行(并行) Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug的情况下易于重构 注意:本文中的”并发“泛指 concurrent 和 parallel 一、使用线程同时
阅读全文

摘要:
智能指针 智能指针(序) 相关的概念 指针:一个变量在内存中包含的是一个地址(指向其它数据) Rust 中最常见的指针就是”引用“ 引用: 使用 & 借用它指向的值 没有其余开销 最常见的指针类型 智能指针 智能指针是这样一些数据结构: 行为和指针相似 有额外的元数据和功能 引用计数(Referen
阅读全文

摘要:
Rust 的面向对象编程特性 一、面向对象语言的特性 Rust是面向对象编程语言吗? Rust 受到多种编程范式的影响,包括面向对象 面向对象通常包含以下特性:命名对象、封装、继承 对象包含数据和行为 “设计模式四人帮”在《设计模型》中给面向对象的定义: 面向对象的程序由对象组成 对象包装了数据和操
阅读全文

摘要:
模式匹配 模式 模式是Rust中的一种特殊语法,用于匹配复杂和简单类型的结构 将模式与匹配表达式和其他构造结合使用,可以更好地控制程序的控制流 模式由以下元素(的一些组合)组成: 字面值 解构的数组、enum、struct 和 tuple 变量 通配符 占位符 想要使用模式,需要将其与某个值进行比较
阅读全文

摘要:
高级特性 主要内容 不安全 Rust 高级 Trait 高级 类型 高级函数和闭包 宏 一、不安全 Rust 匹配命名变量 隐藏着第二个语言,它没有强制内存安全保证:Unsafe Rust(不安全的 Rust) 和普通的 Rust 一样,但提供了额外的“超能力” Unsafe Rust 存在的原因:
阅读全文

摘要:
最后的项目:多线程 Web 服务器 构建多线程 Web 服务器 在 socket 上监听 TCP 连接 解析少量的 HTTP 请求 创建一个合适的 HTTP 响应 使用线程池改进服务器的吞吐量 优雅的停机和清理 注意:并不是最佳实践 创建项目 ~/rust ➜ cargo new hello Cre
阅读全文

摘要:
Rust语言中级教程 一、指针 什么是指针 指针是计算机引用无法立即直接访问的数据的一种方式(类比 书的目录) 数据在物理内存(RAM)中是分散的存储着 地址空间是检索系统 指针就被编码为内存地址,使用 usize 类型的整数表示。 一个地址就会指向地址空间中的某个地方 地址空间的范围是 OS 和
阅读全文

摘要:# 使用 Async Rust 构建简单的 P2P 节点 ### P2P 简介 - P2P:peer-to-peer - P2P 是一种网络技术,可以在不同的计算机之间共享各种计算资源,如 CPU、网络带宽和存储。 - P2P 是当今用户在线共享文件(如音乐、图像和其他数字媒体)的一种非常常用的方法
阅读全文
摘要:# Rust async 编程 Asynchronous Programming in Rust: 中文书名《Rust 异步编程指南》: Rust语言圣经(Rust Course): ## 一、[Getting Started](https://rust-lang.github.io/async-b
阅读全文
摘要:# 使用 Rust 构建微型游戏 -- 用于理解游戏开发 ## 一、 创建游戏 ### Agenda + 建立项目 + 实现 Game loop + 不同的游戏模式 + 添加玩家 + 添加障碍和计分 + 汇总 ### 理解 Game loop 为了让游戏流畅、顺滑的运行,需要使用 Game loop
阅读全文
摘要:# Rust Tips 比较数值 ### 内容 - 比较与类型转换 - 浮点类型比较 ### 可以用这些运算符比较数值 `> = <=` ### 无法比较不同类型的值 ```rust fn main() { let a: i32 = 10; let b: u16 = 100; if a < b {
阅读全文
摘要:# Rust Web 全栈开发之自建TCP、HTTP Server ## 课程简介 ### 预备知识 - Rust 编程语言入门 - https://www.bilibili.com/video/BV1hp4y1k7SV ### 课程主要内容 - WebService - 服务器端Web App -
阅读全文
摘要:# Rust Web 全栈开发之 Actix 尝鲜并构建REST API ## 一、Actix 尝鲜 ### 需要使用的crate - actix-web v4.3.1 - actix-rt v2.8.0 ```bash ~ via 🅒 base ➜ cd rust ~/rust via 🅒 b
阅读全文
摘要:# Rust Web 全栈开发之连接数据库 ### 需要使用的 crate 和 数据库 - sqlx, v0.5.10 - PostgreSQL ### 创建项目 ```bash ~/rust via 🅒 base ➜ cargo new db Created binary (applicatio
阅读全文
摘要:# Rust Web 全栈开发之在 Web 项目中使用数据库 ### 目录 ```bash ws on master [?] via 🦀 1.67.1 via 🅒 base ➜ tree -a -I target . ├── .git ├── .gitignore ├── Cargo.loc
阅读全文
摘要:# Rust Web 全栈开发之 Web Service 中的错误处理 ## Web Service 中的统一错误处理 ### Actix Web Service 自定义错误类型 -> 自定义错误转为 HTTP Response - 数据库 - 数据库错误 - 串行化 - serde 错误 - I/
阅读全文
摘要:# Rust Web 全栈开发之增加字段和重构 ## 增加字段和重构 ### 现状  ![](https://
阅读全文
摘要:# Rust Web 全栈开发之增加教师管理功能 ## 增加教师管理功能 ### 目标 #### Actix HTTP Server #### Actix App - Routes - GET /teachers - GET / teachers /{teacher_id} - POST /teac
阅读全文
摘要:# Rust Web 全栈开发之编写服务器端 Web 应用 ## 项目结构 和 功能 Web App 教师注册 Web Service ## 主要技术 - 模板引擎: Tera ### 创建项目 ```bash ws on main via 🦀 1.67.1 via 🅒 base ➜ car
阅读全文
摘要:# Rust Web 全栈开发之编写 WebAssembly 应用 MDN Web Docs: 官网: ## 项目结构 和 功能 **Web App 教师注册 WebService WebAssembly App 课程管理** ## 什么是 WebAssembly - WebAssembly 是一种
阅读全文