合集-Rust
摘要:
无畏并发 并发 Concurrent:程序的不同部分之间独立的执行(并发) Parallel:程序的不同部分同时运行(并行) Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug的情况下易于重构 注意:本文中的”并发“泛指 concurrent 和 parallel 一、使用线程同时
阅读全文
无畏并发 并发 Concurrent:程序的不同部分之间独立的执行(并发) Parallel:程序的不同部分同时运行(并行) Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug的情况下易于重构 注意:本文中的”并发“泛指 concurrent 和 parallel 一、使用线程同时
阅读全文
摘要:
智能指针 智能指针(序) 相关的概念 指针:一个变量在内存中包含的是一个地址(指向其它数据) Rust 中最常见的指针就是”引用“ 引用: 使用 & 借用它指向的值 没有其余开销 最常见的指针类型 智能指针 智能指针是这样一些数据结构: 行为和指针相似 有额外的元数据和功能 引用计数(Referen
阅读全文
智能指针 智能指针(序) 相关的概念 指针:一个变量在内存中包含的是一个地址(指向其它数据) Rust 中最常见的指针就是”引用“ 引用: 使用 & 借用它指向的值 没有其余开销 最常见的指针类型 智能指针 智能指针是这样一些数据结构: 行为和指针相似 有额外的元数据和功能 引用计数(Referen
阅读全文
摘要:
Rust 的面向对象编程特性 一、面向对象语言的特性 Rust是面向对象编程语言吗? Rust 受到多种编程范式的影响,包括面向对象 面向对象通常包含以下特性:命名对象、封装、继承 对象包含数据和行为 “设计模式四人帮”在《设计模型》中给面向对象的定义: 面向对象的程序由对象组成 对象包装了数据和操
阅读全文
Rust 的面向对象编程特性 一、面向对象语言的特性 Rust是面向对象编程语言吗? Rust 受到多种编程范式的影响,包括面向对象 面向对象通常包含以下特性:命名对象、封装、继承 对象包含数据和行为 “设计模式四人帮”在《设计模型》中给面向对象的定义: 面向对象的程序由对象组成 对象包装了数据和操
阅读全文
摘要:
模式匹配 模式 模式是Rust中的一种特殊语法,用于匹配复杂和简单类型的结构 将模式与匹配表达式和其他构造结合使用,可以更好地控制程序的控制流 模式由以下元素(的一些组合)组成: 字面值 解构的数组、enum、struct 和 tuple 变量 通配符 占位符 想要使用模式,需要将其与某个值进行比较
阅读全文
模式匹配 模式 模式是Rust中的一种特殊语法,用于匹配复杂和简单类型的结构 将模式与匹配表达式和其他构造结合使用,可以更好地控制程序的控制流 模式由以下元素(的一些组合)组成: 字面值 解构的数组、enum、struct 和 tuple 变量 通配符 占位符 想要使用模式,需要将其与某个值进行比较
阅读全文
摘要:
高级特性 主要内容 不安全 Rust 高级 Trait 高级 类型 高级函数和闭包 宏 一、不安全 Rust 匹配命名变量 隐藏着第二个语言,它没有强制内存安全保证:Unsafe Rust(不安全的 Rust) 和普通的 Rust 一样,但提供了额外的“超能力” Unsafe Rust 存在的原因:
阅读全文
高级特性 主要内容 不安全 Rust 高级 Trait 高级 类型 高级函数和闭包 宏 一、不安全 Rust 匹配命名变量 隐藏着第二个语言,它没有强制内存安全保证:Unsafe Rust(不安全的 Rust) 和普通的 Rust 一样,但提供了额外的“超能力” Unsafe Rust 存在的原因:
阅读全文
摘要:
最后的项目:多线程 Web 服务器 构建多线程 Web 服务器 在 socket 上监听 TCP 连接 解析少量的 HTTP 请求 创建一个合适的 HTTP 响应 使用线程池改进服务器的吞吐量 优雅的停机和清理 注意:并不是最佳实践 创建项目 ~/rust ➜ cargo new hello Cre
阅读全文
最后的项目:多线程 Web 服务器 构建多线程 Web 服务器 在 socket 上监听 TCP 连接 解析少量的 HTTP 请求 创建一个合适的 HTTP 响应 使用线程池改进服务器的吞吐量 优雅的停机和清理 注意:并不是最佳实践 创建项目 ~/rust ➜ cargo new hello Cre
阅读全文
摘要:
Rust语言中级教程 一、指针 什么是指针 指针是计算机引用无法立即直接访问的数据的一种方式(类比 书的目录) 数据在物理内存(RAM)中是分散的存储着 地址空间是检索系统 指针就被编码为内存地址,使用 usize 类型的整数表示。 一个地址就会指向地址空间中的某个地方 地址空间的范围是 OS 和
阅读全文
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 全栈开发之增加字段和重构 ## 增加字段和重构 ### 现状   书:Rust for Rustaceans ## Rust接口设计的原则(建议) - 四个原则: - 不意外(unsurprising) - 灵活(flexible) - 显而易见(obvious) - 受约束(constraine
阅读全文
摘要:# Rust - 接口设计建议之灵活(flexible) ## 灵活(flexible) ### 代码的契约(Contract) - 你写的代码包含契约 - 契约: - 要求:代码使用的限制 - 承诺:代码使用的保证 - 设计接口时(经验法则): - 避免施加不必要的限制,只做能够兑现的承诺 - 增
阅读全文
摘要:# Rust语言 - 接口设计的建议之显而易见(Obvious) - [Rust API 指南 GitHub](https://github.com/rust-lang/api-guidelines): - [Rust API 指南 中文](https://rust-chinese-translat
阅读全文
摘要:# Rust语言 - 接口设计的建议之受约束(Constrained) - [Rust API 指南 GitHub](https://github.com/rust-lang/api-guidelines):https://github.com/rust-lang/api-guidelines -
阅读全文
摘要:# 《Rust编程之道》学习笔记一 ## 序 ### Rust语言的主要特点 - 系统级语言 - 无GC - 基于LLVM - 内存安全 - 强类型+静态类型 - 混合编程范式 - 零成本抽象 - 线程安全 ### 程序员的快乐 何谓快乐?真正的快乐不仅仅是写代码时的“酸爽”,更应该是代码部署到生产
阅读全文
摘要:# RUST 和 GO 如何管理它们的内存 ## Go 中的内存管理 Go 中的内存不会在缓存键被驱逐时立即释放。 相反,垃圾收集器会经常运行以发现任何没有引用的内存并释放它。 换句话说,内存会一直挂起,直到垃圾收集器可以评估它是否真正不再使用,而不是在不再需要时立即释放。 Go 必须付出的努力来找
阅读全文
摘要:
Rust 所有权和 Move 语义 所有权和生命周期是 Rust 和其它编程语言的主要区别,也是 Rust 其它知识点的基础。 动态数组因为大小在编译期无法确定,所以放在堆上,并且在栈上有一个包含了长度和容量的胖指针指向堆上的内存。 恰到好处的限制,反而会释放无穷的创意和生产力。 Rust 所有权规
阅读全文
Rust 所有权和 Move 语义 所有权和生命周期是 Rust 和其它编程语言的主要区别,也是 Rust 其它知识点的基础。 动态数组因为大小在编译期无法确定,所以放在堆上,并且在栈上有一个包含了长度和容量的胖指针指向堆上的内存。 恰到好处的限制,反而会释放无穷的创意和生产力。 Rust 所有权规
阅读全文
摘要:
Diesel setup报错解决 Diesel 是一个安全、可扩展的Rust ORM 和查询生成器。 Diesel 是 Rust 中与数据库交互最高效的方式,因为它对查询进行了安全且可组合的抽象。 1. 报错信息 diesel_demo on master [?] via 🦀 1.75.0 v
阅读全文
Diesel setup报错解决 Diesel 是一个安全、可扩展的Rust ORM 和查询生成器。 Diesel 是 Rust 中与数据库交互最高效的方式,因为它对查询进行了安全且可组合的抽象。 1. 报错信息 diesel_demo on master [?] via 🦀 1.75.0 v
阅读全文
摘要:
Rust 中的 HashMap 实战指南:理解与优化技巧 在 Rust 编程中,HashMap 是一个强大的键值对数据结构,广泛应用于数据统计、信息存储等场景。在本文中,我们将通过三个实际的代码示例,详细讲解 HashMap 的基本用法以及如何在真实项目中充分利用它。此外,我们还将探讨 Rust 的
阅读全文
Rust 中的 HashMap 实战指南:理解与优化技巧 在 Rust 编程中,HashMap 是一个强大的键值对数据结构,广泛应用于数据统计、信息存储等场景。在本文中,我们将通过三个实际的代码示例,详细讲解 HashMap 的基本用法以及如何在真实项目中充分利用它。此外,我们还将探讨 Rust 的
阅读全文

浙公网安备 33010602011771号