侧边栏壁纸
博主头像
Easy to understand and humorous

行动起来,活在当下

  • 累计撰写 39 篇文章
  • 累计创建 4 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Rust

fengyang
2025-09-05 / 0 评论 / 0 点赞 / 6 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2025-10-18,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Rust 安装和管理

用 rustup 管理工具链

Rust 由工具 rustup 安装和管理。
Rust 有着以 6 星期为周期的 快速版本迭代机制,支持 大量平台,因而不同时期存在大量不同的 Rust 构建版本。
rustup 用于管理不同平台下的 Rust 构建版本并使其互相兼容, 支持安装由 Beta 和 Nightly 频道发布的版本,并支持其他用于交叉编译的编译版本。

升级 Rust

可以执行 rustup update 来升级 Rust。

卸载 Rust

可以运行 rustup self uninstall。

宏(Macro)

宏(Macro)是一种元编程(metaprogramming)的工具。

Rust 中宏分为以下两种类型:

  • 声明式宏(Declarative Macros)允许开发者使用宏规则(macro_rules!)创建模式匹配和替换规则,根据匹配到的模式进行代码替换。
    • 声明式宏是一种基于文本的宏,它仅仅是简单的文本替换,并没有对语法树进行操作。
  • 过程宏(Procedural Macros)允许开发者在代码生成阶段使用 Rust 代码来处理输入并生成输出。
    • 过程宏有三种主要类型:派生宏(derive macros)、属性式宏(attribute-like macros)和函数式宏(function-like macros)。

总体而言,

声明式宏主要是基于简单的文本替换和模式匹配,适用于对代码进行简单的转换。

过程宏则更为灵活,允许在编译期间生成和操作 AST,提供了更丰富的功能,但相对复杂一些,需要更深入的理解和使用。

最常见的一些宏

// 日志打印宏 println!
println!("hello, micro");

// 动态数组创建宏 vec!
let _dyc_arr = vec![1, 2, 3];

// 断言宏 assert!,判断条件是否满足
let x = 1;
let y = 2;
assert!(x + y == 3, "x + y should equal 3");

// 格式化字符串的宏 format!
let name = "world";
let _message = format!("Hello, {}!", name);

宏和函数的区别?

在 Rust 中,宏和函数都是用于代码重用的工具,区别如下。

首先,宏是一种编译时工具,而函数是一种运行时工具。这意味着,宏在编译时被展开并生成代码,而函数则在程序运行时被调用并执行代码。因此,使用宏可以在编译时进行更多的优化和检查,从而提高程序的性能和安全性。

其次,宏可以接受任意数量和类型的参数,并且可以在编译时生成任意类型的代码。这使得宏非常灵活,可以用于各种不同的场景。例如,宏可以用于生成数据结构、定义域特定语言、实现代码模板等等。

另外,宏还可以使用 Rust 的元编程功能,例如宏定义中的 #[derive] 属性可以自动生成代码,这在某些情况下可以减少编写代码的工作量。

0

评论区