Rust In Action
文章平均质量分 92
10年底层软件开发经验,使用现代编程语言,step by step 掌握构建一流软件的法则。
幻灰龙
计算数学博士,程序员,热爱技术和学习。
展开
-
Rust实战(5):Rust 如何防御 C++ vector 容器的迭代器边界判断问题
在C++中,未定义行为(Undefined Behavior,简称UB)指的是程序在运行时,所出现的不可预测、不符合语言规范、且未定义其结果的行为。访问未初始化的内存:当我们对未初始化的内存进行读写操作时,其结果是未定义的。例如,以下代码中的指针p未初始化,对其进行解引用操作是未定义行为:int * p;//未定义行为访问越界的内存:C++中,数组越界访问是未定义行为。当我们访问数组或指针指向的内存范围之外时,程序行为是未定义的。原创 2023-07-20 16:21:08 · 706 阅读 · 2 评论 -
Rust实战(4):防御简单C++ vector容器的越界问题例子分析
关于Option的问题,也可以看这篇以前翻译的文章:翻译(3): NULL-计算机科学上最糟糕的失误: https://vector.blog.csdn.net/article/details/119341261?Rust的在错误处理上的支持还有更多,可以慢慢展示,这些只是Rust现代语言设计带来的基本便利,Rust并不是小补丁式的解决问题。在数组越界上,如果采用和C++一样的数组下标直接索引,Rust代码在运行时会明确的Panic。,这个时候,可以使用Rust的。此时数组超出范围,返回的是。原创 2023-07-17 02:19:36 · 907 阅读 · 0 评论 -
Rust实战(3):使用AI对Rust四则运算代码提问
是的,match可以与其他用户自定义的类型一起使用,以处理不同的情况。例如,假设我们有一个枚举类型Directionmatch d {("Going up!") , } }在这个例子中,我们定义了一个枚举类型DirectionUpDownLeft和Right。然后,我们使用match来处理不同的情况。如果d是,我们将打印一条消息表示向上移动。如果d是,我们将打印一条消息表示向下移动。如果d是,我们将打印一条消息表示向左移动。如果d是,我们将打印一条消息表示向右移动。这个例子展示了如何使用match。原创 2023-03-24 11:52:46 · 504 阅读 · 3 评论 -
Rust 实战 (2)|创建一个完整的项目
Rust 设计并创建一个完整的项目工作空间和项目两层结构设计一个实际的项目完成创建并编译Hello world小结上一节,我们对 Rust 的开发环境的关键概念做了介绍,本节我们来创建一个完整的项目,理解 Rust 的项目结构,并建立一个 Rust 实战用的 git 仓库。工作空间和项目两层结构使用过 Visual C++/Visual Studio/… 等 C/C++ IDE 的开发者应该都有解决方案/子项目 的工程概念。例如 Visual Studio 创建的 C++ 工程,都会有一个 *.sln原创 2021-03-15 21:30:58 · 3161 阅读 · 14 评论 -
Rust 实战 (1)|开发环境介绍
Rust 开发环境介绍安装 rustup使用在线执行环境 | playground安装 VSCode 插件认识 Rust 的工具链小结安装 rustupWindows 本地安装下载Windows安装包:https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe如果开发跨平台程序,而不仅仅在Windows上跑。那么 Windows 环境也建议在 WSL 环境下安装下 rustupMac/Lin原创 2021-02-18 22:02:47 · 891 阅读 · 0 评论