改进 Rust 宏中的自动完成功能
自动完成是 IDE 提供的一种功能,可以帮助开发者在编写代码时快速找到正确的关键字和参数。在 Rust 宏中,自动完成功能可能会出现不准确或不完整的情况。
文章作者介绍了以下几种方法来改进 Rust 宏中的自动完成功能, 这样可以使你的宏在使用的过程中体验更好.
原文链接 https://blog.emi0x7d1.dev/improving-autocompletion-in-your-rust-macros/
IoT 和 Rust: 在 ESP 上连接 wifi
这篇文章是使用 Rust 在 ESP32 上进行物联网(IoT)开发的新系列文章的第一篇。该系列文章将重点介绍几个物联网硬件和云连接方面,如 WiFi 和 HTTP。
对于大多数物联网服务,首先总是需要获取某种网络访问权限。因此,在这篇文章中,我们将通过配置和设置 WiFi 来启动该系列文章,我们将利用 esp-idf-svc crate 进行设置。
原文链接 https://dev.to/apollolabsbin/iot-with-rust-on-esp-connecting-wifi-4be6
Rust和 C 的两种动态分派方式
Rust 和 C 都内置了动态分派(但实现方式不同), 本视频介绍这两种语言的方法,权衡它们的优缺点.
动态分派 是一种运行时特性,它允许在运行时调用正确的函数,而不仅仅是编译时。这对于实现多态性至关重要,多态性是编程中的一种重要概念,它允许您编写可以处理不同类型数据的代码。
Rust 使用一种称为 trait object 的机制来实现动态分派。trait object 是一个指向实现给定 trait 的任何类型的指针。当您调用 trait object 上的方法时,编译器会在运行时查找正确的函数来调用。
C 使用一种称为 虚方法表(vtable)的机制来实现动态分派。vtable 是一个指向对象的所有虚函数的指针数组。当您调用对象上的虚方法时,编译器会在 vtable 中查找正确的函数来调用。
Rust 和 C 动态分派的优缺点
Rust
优点:
- trait object 是类型安全的,这意味着编译器可以确保您不会调用不兼容的类型上的方法。
- trait object 的性能开销很小。
缺点:
- trait object 的使用可能会使代码更难阅读和理解。
C
优点:
- 虚方法表的使用可以使代码更易于阅读和理解。
缺点:
- 虚方法表可能会导致额外的性能开销。
- 虚方法表的使用可能会导致更多的错误,例如虚方法未被正确覆盖或虚析构函数未被正确实现。
油管视频 https://www.youtube.com/watch?v=wU8hQvU8aKM