Rust入门系列:01、第一个rust程序

  • Louis
  • 更新于 2024-06-18 19:36
  • 阅读 939

本篇文章会从一个简单的rust程序开始梳理,并逐行解释含义

第一个rust程序

fn main() {
    println!("hello world");
}

代码解释

这段代码是一个 Rust 程序的入口点,即程序的执行从这里开始。让我们逐行解释一下:

fn main() {

这一行声明了一个叫做 main 的函数。在 Rust 中,main 函数是程序的入口点,编译器会从这里开始执行程序。fn 是 Rust 中声明函数的关键字。

    println!("hello world");

这一行是调用 Rust 标准库中的 println! 宏,用于在终端打印文本。println! 宏接受一个格式化字符串作为参数,在这里是 "hello world"。当执行到这一行时,程序会在终端输出 hello world

}

这是 main 函数的结束标志,表示函数体的结束。

这段代码的作用是:

当运行这个 Rust 程序时,它会在终端打印出 hello world。这是一个最基本的 Rust 程序示例,非常简单,但涵盖了一些基本概念,如函数声明、程序入口点和输出语句。

rust中的宏

在 Rust 中,宏是一种元编程工具,允许你在编译期执行代码生成或代码转换操作。宏可以看作是一种语法扩展,能帮助你以一种简洁的方式编写更加简洁、抽象和通用的代码。

Rust 中有两种主要的宏:

  1. 声明式宏(Declarative Macros)

声明式宏允许你编写一些类似于匹配模式的代码,用来匹配特定的代码模式,然后通过规则来转换成其他Rust代码。它们在元编程方面用途很广,如实现类似C语言的预处理器功能、约束多态实现、字符串格式化库等。

例如之前提到的 println! 就是一个声明式宏。它将字符串格式化代码转化为相应的函数调用代码。

  1. 过程式宏(Procedural Macros)

过程式宏允许你在编译期以可控的方式生成任意代码,通过加载在单独crates中的程序来实现。过程式宏必须将源码重写为抽象语法树(AST)并对其进行操作。它们常用于代码生成和语法扩展,如实现派生Trait、构建Web框架等。

过程式宏通常以 #[derive(...)]#[procedure_macro_name] 等属性使用。

宏使Rust语言更加强大灵活。然而,过度使用宏会降低可读性和可维护性。因此,通常建议 只在存在合理动机且明确的局部使用场景下使用宏,一般情况下还是应该优先考虑普通函数和Trait。正确使用宏有助于编写更加安全、高效和抽象的Rust代码。

点赞 1
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Louis
Louis
web3 developer,技术交流或者有工作机会可加VX: magicalLouis