Rust快速入门(8) - 泛型、trait & 生命周期

泛型是具体类型或其他属性的抽象替代。我们可以表达泛型的属性,比如他们的行为或如何与其他泛型相关联,而不需要在编写和编译代码时知道他们在这里实际上代表什么。 ...

Read More...


Rust快速入门(7) - 错误处理

错误是软件中不可避免的一部分,Rust提供了多种机制来处理错误情况。本章总结了Rust的错误处理方式及其最佳实践。 Rust 将错误组合成两个主要类别:**可恢复错误**(*recoverable*)和 **不可恢复错误**(*unrecoverable*)。可恢复错误通常代表向用户报告错误和重试操作是合理的情况,比如未找到文件。不可恢复错误通常是 bug 的同义词,比如尝试访问超过数组结尾的位置。 ...

Read More...


Rust快速入门(6) - 常见集合

Rust标准库提供了许多有用的数据结构,称为集合(collections)。与内置的数组和元组不同,这些集合指向的数据存储在堆上,这意味着数据的大小可以在运行时增长或缩小。 ...

Read More...


Rust快速入门(5) - 包 & Crate & 模块

随着项目规模的增长,组织代码变得越来越重要。本章介绍了Rust的模块系统,它允许开发者将代码拆分为多个文件,管理可见性,并控制作用域。 - **包**(*Packages*): Cargo 的一个功能,它允许你构建、测试和分享 crate。 - **Crates** :一个模块的树形结构,它形成了库或二进制项目。 - **模块**(*Modules*)和 **use**: 允许你控制作用域和路径的私有性。 - **路径**(*path*):一个命名例如结构体、函数或模块等项的方式 ...

Read More...


Rust快速入门(4) - 枚举&模式匹配

枚举和模式匹配是Rust的强大功能: 1. **枚举**允许定义可以是一组指定变体之一的类型,变体可以携带不同类型和数量的数据 2. **Option<T>**枚举表示可选值,帮助避免空值错误 3. **match**表达式允许根据枚举的变体执行不同代码,必须处理所有可能情况 这些功能使Rust能够在类型系统层面防止错误,并提供清晰、可读的代码结构。 ...

Read More...


Rust快速入门(3) - 结构体

结构体(struct)是一种自定义数据类型,允许我们将多个相关联的值打包并命名,形成一个有意义的组合。结构体类似于面向对象语言中对象的数据属性。 ...

Read More...


Rust快速入门(2) - 所有权(OwnerShip)

所有权是 Rust 的基础,它影响了 Rust 中许多其他功能的工作方式,是理解和掌握 Rust 编程的关键概念。通过深入理解所有权,我们能够编写既安全又高效的 Rust 代码。 ...

Read More...


Rust快速入门(1) - 通用编程概念

Rust 鼓励开发者采用一些最佳实践,如默认不可变变量、强类型检查、表达式为主的语法等,这些都有助于编写更安全、更可靠的代码。 ...

Read More...


记录一次 python ELF 文件反编译过程

白嫖的软件出问题了, 懒得找资源, 于是准备看看它哪里有问题, 修一修继续用 ...

Read More...


内存屏障随笔(memory-barrier)

MESI 协议中,如果 `CPU-0` 对一个块 非独占数据进行修改 会发出 Invalid 信号通知其他持有该数据的 `CPU` ,然后等待 `CPU` ACK。如果其他 `CPU` ACK 响应较慢,则会浪费 `CPU-0` 大量的 `CPU时间`,所以有了 `Store Buffer`。 处理器把它想要写入到主存的值写到缓存,然后**继续去处理其他事情**。当所有失效确认(Invalidate Acknowledge)都接收到时,数据才会最终被提交。但是这么做会有问题: ...

Read More...


好好学习,天天向上