三、Rust HelloWorld

本章节我们通过一个小小的 Hello World 程序来看看和解释 Rust 最小程序的构成。

首先创建一个 HelloWorld 的目录并在 命令行/终端 中使用 cd 命令并进入到 HelloWorld 目录

  1. C:\Users\Admin>mkdir HelloWorld
  2. C:\Users\Admin>cd HelloWorld
  3. C:\Users\Admin\HelloWorld>

使用你趁手的编辑器创建一个文件 Hello.rs,比如我使用 Visual Studo Code 作为代码编辑器

  1. C:\Users\Admin\HelloWorld-App>code Hello.rs

Rust 语言的源代码文件以 .rs 作为文件扩展名。

上面的命令会在当前目录下创建一个 Hello.rs 的空文件,并在 Visual Studo Code 中打开。

在 Hello.rs 文件中输入以下代码,然后保存。

  1. fn main(){
  2. println!("Hello World");
  3. println!("你好,零基础教程");
  4. }

上面这段代码定义了一个名为 main 的函数。Rust 语言使用 fn 关键字定义函数。

main() 函数是一个预定义函数,充当 Rust 程序的入口点,类似于 C 语言 中的 main() 函数。

接下来的 println!() 是 Rust 语言中的一个 预定义的宏。这个 println!() 用于将传递给它的参数输出到 标准输出。

Rust 语言中的 宏 都会以 感叹号( ! ) 结尾。也就是说,你以后看到以 ! 结尾的类似函数调用,都是 宏调用

使用 rustc 编译工具编译我们刚刚的 Hello.rs

  1. C:\Users\Admin\HelloWorld>rustc Hello.rs

如果编译成功,rustc 命令会生成一个跟 源代码文件 同名的 .exe 二进制可执行文件。比如上面的命令会生成一个 Hello.exe 文件。

  1. // 列出当前目录下的文件
  2. C:\Users\Admin\HelloWorld>dir
  3. Hello.exe
  4. Hello.pdb
  5. Hello.rs

为了检查编译是否成功,你可以双击 Hello.exe 查看运行结果。

3.1 什么是宏 ?

Rust 提供了一个功能非常强大的 体系,通过这些 宏,我们可以很方便的进行元编程

Rust 中的 有点类似于 函数。它们跟函数还是有很大的区别的:

  1. 宏以感叹号 (!) 结尾,正如上面我们所见到的那样。
  2. 宏在编译时并不会生成一个 函数调用,而是直接对 宏 的源代码进行展开。这个和 C 语言 中宏是一样的。

从某些方面说,我们可以将 理解为 函数的加强版

3.1.1 范例

下面的三行代码,演示了宏的使用

  1. println!(); // 输出一个空行
  2. println!("hello "); // 新的一行输出 hello
  3. println!("format {} arguments", "some"); // 新的一行输出 format some arguments

3.2 Rust 语言中的注释

注释有助于改善程序代码的可读性。注释类似于我们读书时做的评注。

程序中的注释一般用于标注程序的一些基本信息,对一些难以理解的代码、类、函数或返回值进行说明等。

Rust 编译器会在编译程序的时候 主动忽略 代码中的注释,也就是说,注释不会影响代码的编译和执行。

Rust 语言支持以下两种注释,也是很多语言都有的默认注释方法

3.2.1 单行注释 / 行内注释

单行注释以 // 开头,之后说有的文字包括代码都属于注释。

也就是说,以 // 开头,直到行尾的所有文字都属于注释,包括中间的任何 //

例如:

  1. // 这个单行注释单独一行
  2. 1+1; // 这是注释,但前面的 1+1; 是正常的代码
  3. // 1+1; // 这个整行也是注释,// 可以任意多个

3.2.2 多行注释 / 块注释

多行注释 就是可以跨越多行,当然也可以只有一行。

多行注释以 / 开头,以 / 结尾。

块注释中可以有任意数量的 /,但是,一旦遇到 / 则表示 块注释结束

例如:

  1. /* 这是块注释 */
  2. /* 这
  3. 多行
  4. 注释 */
  5. /* /* /*
  6. 这也是多行注释
  7. */