1. Hello World!
在所有编程语言的教程中让大家接触的第一段程序便是将 “Hello World!”
这段文字打印到屏幕上,这样的开端被绝大多数语言的教学接受,并往后编程语言也墨守成规。因此我们这里在学习 Rust
语言也不例外的写一段打印 “Hello World!”
的代码作为我们第一段编写的 Rust
代码。
2. 创建项目目录
为了使自己有个良好的工程构建习惯,我们在这里从项目的目录创建开始做起(即便该代码在哪里并不重要,都是可以运行的)。
我们在这里创建一个与 rust
有关的项目目录,之后在其中创建一个具体的项目 “Hello World”
目录作为存储我们编写代码的目录。
imaginemiracle:Code$ mkdir rust_projects
imaginemiracle:Code$ cd rust_projects/
imaginemiracle:rust_projects$ mkdir hello_world
imaginemiracle:rust_projects$ cd hello_world/
imaginemiracle:hello_world$
3. 编写和运行 “Hello World” 程序
接下来,创建一个新的源文件并将其命名为 main.rs
。Rust
文件总是以 .rs
扩展名结尾。如果在文件名中使用多个单词,请使用下划线分隔它们。例如,使用 hello_world.rs
而不是 helloworld.rs
。
# 打开并创建 main.rs 源文件
imaginemiracle:hello_world$ vim main.rs
编写 “Hello World”
程序的主函数 main
。
// File: main.rs
fn main() {
println!("Hello World!");
}
编译 main.rs
源文件,并执行编译生成的可执行程序。
imaginemiracle:hello_world$ rustc main.rs
imaginemiracle:hello_world$ ls
main main.rs
imaginemiracle:hello_world$ ./main
Hello World!
这里我们可以看到该段代码编译执行后,会在终端里打印出 “Hello World!”
这段文本和一个换行符。
4. “Hello World” 代码分析
4.1. Rust 语言中的 main 函数
让我们详细回顾一下刚刚在 “Hello, world!”
中发生的事情。首先下面这部分是我们写的第一个部分:
fn main() {
}
这些行在 Rust
中定义了一个函数。这个 main
函数很特别:它总是在每个可执行的 Rust
程序中运行的第一个代码。第一行声明了一个名为的函数 main
,它没有参数并且不返回任何内容。如果有参数,它们将放在括号内,()
。
另外,请注意,函数体用大括号括起来,{}
。 Rust
需要这些围绕所有函数体。将左大括号与函数声明放在同一行是一种很好的风格,在两者之间添加一个空格(需要注意的良好的编写习惯)。
如果你想在 Rust
项目中坚持标准风格,你可以使用一个名为的自动格式化工具 rustfmt
来格式化你的代码为特定风格。Rust
团队已将此工具包含在标准的 Rust
发行版中,例如 rustc
,因此它应该已经安装在您的计算机上!为了不打断代码分析的进程,笔者将 rustfmt
工具的使用示例放在了后面(本文的 4.3 小节)。
4.2. Rust 中的宏——println!
这是 main
函数的函数体内容。
println!("Hello World!");
这一行完成了这个小程序中的所有工作:它将文本打印到屏幕上。这里有四个重要的细节需要注意。
(1) Rust
风格是缩进四个空格,而不是制表符 (Tab
)。
(2) println!
调用 Rust
宏。如果它改为调用一个函数,它将被输入为 println
(不带 !
)。我们将在以后更详细地讨论 Rust
宏。现在,您只需要知道使用一个 !
意味着正在调用宏而不是普通函数,并且宏并不总是遵循 “与” 功能。
(3) 你看到了 "Hello, world!"
字符串。我们将此字符串作为参数传递给 println!
,然后将字符串打印到屏幕上。
(4) 我们用分号 ( ;
) 结束这一行,这表示这个表达式已经结束,下一个表达式已准备好开始。大多数 Rust
代码行都以分号结尾。
4.3. 自动调整代码格式工具——rustfmt
这里简单的介绍 rustfmt
工具的使用方法,当安装完 Rust
的发行版后,会连带常用的工具也会安装好,rustfmt
就是其中之一。事实上 rustfmt
的使用方式很简单。
首先,我们将刚刚编写的 main.rs
中的代码格式打乱。
imaginemiracle:hello_world$ cat main.rs
fn
main() { println!("Hello World!");}
现在,使用 rustfmt
工具自动调整代码格式。
imaginemiracle:hello_world$ rustfmt main.rs
imaginemiracle:hello_world$ cat main.rs
fn main() {
println!("Hello World!");
}
可以看到被打乱的代码,已经被排版整齐,是不是很方便!
5. Rust 程序的编译和运行
可能聪明的大家已经注意到了,Rust
程序像大多数语言一样,编译和运行是作为两个步骤分开操作的。我们再回顾一遍刚才的步骤。
首先,我们使用 Rust
编译器通过输入 rustc
命令并将源文件的名称传递给它来编译源文件。
imaginemiracle:hello_world$ rustc main.rs
编译成功后便会输出一个二进制的可执行文件(与 c
、c++
代码被 gcc
编译一样),这里不带扩展名的 main
文件便是编译器输出的二进制可执行文件。当我们执行该文件,便实现了在中终端里打印出 “Hello World!”
这段文字。
imaginemiracle:hello_world$ ls
main main.rs
imaginemiracle:hello_world$ file main
main: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3e57065668270319df598abd5cbede6207e35eb6, for GNU/Linux 3.2.0, with debug_info, not stripped
imaginemiracle:hello_world$ ./main
Hello World!
Boys and Girls!!!
准备好了吗?下一节我们要开始做个小练习了哦!
不!我还没准备好,让我先回顾一下之前的。
上一篇《Rust 环境安装——Rust语言基础01》
我准备好了,掛かって来い(放马过来)!
下一篇《使用 Cargo 构建管理 Rust 项目——Rust语言基础03》
觉得这篇文章对你有帮助的话,就留下一个赞吧v*
请尊重作者,转载还请注明出处!感谢配合~
[作者]: Imagine Miracle
[版权]: 本作品采用知识共享署名-非商业性-相同方式共享 4.0 国际许可协议进行许可。
[本文链接]: https://blog.csdn.net/qq_36393978/article/details/125201468