三、Rust HelloWorld
本章节我们通过一个小小的 Hello World 程序来看看和解释 Rust 最小程序的构成。
首先创建一个 HelloWorld 的目录并在 命令行/终端 中使用 cd 命令并进入到 HelloWorld 目录
C:\Users\Admin>mkdir HelloWorld
C:\Users\Admin>cd HelloWorld
C:\Users\Admin\HelloWorld>
使用你趁手的编辑器创建一个文件 Hello.rs,比如我使用 Visual Studo Code 作为代码编辑器
C:\Users\Admin\HelloWorld-App>code Hello.rs
Rust 语言的源代码文件以 .rs 作为文件扩展名。
上面的命令会在当前目录下创建一个 Hello.rs 的空文件,并在 Visual Studo Code 中打开。
在 Hello.rs 文件中输入以下代码,然后保存。
fn main(){
println!("Hello World");
println!("你好,零基础教程");
}
上面这段代码定义了一个名为 main 的函数。Rust 语言使用 fn 关键字定义函数。
main() 函数是一个预定义函数,充当 Rust 程序的入口点,类似于 C 语言 中的 main() 函数。
接下来的 println!() 是 Rust 语言中的一个 预定义的宏。这个 println!() 用于将传递给它的参数输出到 标准输出。
Rust 语言中的 宏 都会以 感叹号( ! ) 结尾。也就是说,你以后看到以 ! 结尾的类似函数调用,都是 宏调用。
使用 rustc 编译工具编译我们刚刚的 Hello.rs
C:\Users\Admin\HelloWorld>rustc Hello.rs
如果编译成功,rustc 命令会生成一个跟 源代码文件 同名的 .exe 二进制可执行文件。比如上面的命令会生成一个 Hello.exe 文件。
// 列出当前目录下的文件
C:\Users\Admin\HelloWorld>dir
Hello.exe
Hello.pdb
Hello.rs
为了检查编译是否成功,你可以双击 Hello.exe 查看运行结果。
3.1 什么是宏 ?
Rust 提供了一个功能非常强大的 宏 体系,通过这些 宏,我们可以很方便的进行元编程。
Rust 中的 宏 有点类似于 函数。它们跟函数还是有很大的区别的:
- 宏以感叹号 (!) 结尾,正如上面我们所见到的那样。
- 宏在编译时并不会生成一个 函数调用,而是直接对 宏 的源代码进行展开。这个和 C 语言 中宏是一样的。
从某些方面说,我们可以将 宏 理解为 函数的加强版
3.1.1 范例
下面的三行代码,演示了宏的使用
println!(); // 输出一个空行
println!("hello "); // 新的一行输出 hello
println!("format {} arguments", "some"); // 新的一行输出 format some arguments
3.2 Rust 语言中的注释
注释有助于改善程序代码的可读性。注释类似于我们读书时做的评注。
程序中的注释一般用于标注程序的一些基本信息,对一些难以理解的代码、类、函数或返回值进行说明等。
Rust 编译器会在编译程序的时候 主动忽略 代码中的注释,也就是说,注释不会影响代码的编译和执行。
Rust 语言支持以下两种注释,也是很多语言都有的默认注释方法
3.2.1 单行注释 / 行内注释
单行注释以 // 开头,之后说有的文字包括代码都属于注释。
也就是说,以 // 开头,直到行尾的所有文字都属于注释,包括中间的任何 //
例如:
// 这个单行注释单独一行
1+1; // 这是注释,但前面的 1+1; 是正常的代码
// 1+1; // 这个整行也是注释,// 可以任意多个
3.2.2 多行注释 / 块注释
多行注释 就是可以跨越多行,当然也可以只有一行。
多行注释以 / 开头,以 / 结尾。
块注释中可以有任意数量的 /,但是,一旦遇到 / 则表示 块注释结束
例如:
/* 这是块注释 */
/* 这
是
多行
注释 */
/* /* /*
这也是多行注释
*/