【Rust日报】diffogus - 计算同一类型的两个实例之间的差异

科技   2024-11-07 13:40   加拿大  

为什么你应该学习Rust

Rust是一种相对较新的编程语言,旨在构建高效可靠的应用程序。对于编程新手来说,学习Rust是一个非常好的选择,原因如下:

  1. Rust是一种直白的语言,没有复杂的语法,初学者可以很容易上手并自学。

  2. Rust从一开始就培养良好的编码习惯,帮助初学者建立行业标准的编码行为。

  3. Rust有深入的错误日志消息,可以清晰地解释错误并提供建议,非常友好。

  4. Rust的编译器严格但富有支持性,像一位老师般指导你修正代码。

  5. Rust没有手动内存管理,使用所有权系统自动分配内存,避免了复杂的内存管理。

  6. Rust拥有一个支持友好的社区,初学者可以得到热心的帮助。

  7. Rust结合了现有语言的优点,同时轻巧高效,是资深开发人员的利器。

因此,无论是编程新手还是有经验的开发者,学习Rust都是一个极佳的选择。

https://www.howtogeek.com/why-you-should-learn-rust/

diffogus - 计算同一类型的两个实例之间的差异

diffogus 用于计算同一类型的两个实例之间的差异。它具有以下特性:

  1. 简单地对基本Rust类型进行比较,包括所有整数类型、浮点数类型。

  2. 对实现了Diffable特性的元素的向量进行比较。

  3. 对键值对中的值实现了Diffable特性的HashMap进行比较。

  4. 对包装了实现了Diffable特性的类型的Option进行比较。

  5. 对实现了Diffable特性的结构体的两个实例进行比较。可以手动实现Diffable,或者使用#[derive(Diff)]特性派生。目前只支持具有命名字段的结构体。

  6. 使用serde特性标志,可以序列化差异结果。

https://github.com/funlennysub/diffogus

教程 - 从头开始构建一个3D终端渲染器

这篇文章介绍了如何从头开始构建一个3D终端渲染器。主要内容包括:

  1. 总体思路是通过屏幕上的每个像素"发射"一条射线,计算射线与三角形网格的交点,并使用ANSI颜色代码在终端中显示对应三角形的颜色。

  2. 使用Rust语言,设置项目结构和依赖库。

  3. 定义Ray(射线)结构体,表示射线的起点和方向。

  4. 定义Screen(屏幕)结构体,包括宽高、焦距等,用于确定射线的方向。

  5. 定义Camera(相机)结构体,表示射线的起点位置。

  6. 在render方法中,遍历屏幕上的每个像素,构造对应的射线。

  7. 定义Triangle(三角形)和Mesh(网格)结构体,mesh包含多个三角形。

  8. 在render中遍历网格中的每个三角形,计算射线与之的交点并在终端显示相应颜色。

https://tagedan.github.io/posts/terminal_rendering.html

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章