前言
在上一小结中,我们搭建了 Rust 的开发环境,并且使用 Rust 的包管理工具 Cargo 运行了官方提供的示例程序。
本节我们将使用 Rust 来实现一个 Hello World。当你学习任意一门编程语言时,学习的第一门课就是 Hello World,通过 Hello World 你可以了解这门编程语言基本上是什么样子的,怎么编程,对其一些语法特性能有个基本的了解。
一、创建项目目录
Rust 原本是提供了包管理工具 Cargo 的,它提供了项目创建的功能,可以创建一个完整的 Rust 项目,但是 Rust 实际上运行可以不依赖其他的项目文件。
Rust 就和 C 语言差不多,有可以将源码单独编译成一个文件的能力。就像你写了个 main.c
,里面写了 Hello World,然后执行 cl main.c
一样。这是预编译类型语言一个相当强大的能力,强如 Java 使用 javac
编译出来的也只是字节码文件,需要借助 JVM 才可以运行,而 Rust 编译的文件则可以不借助于运行时
运行。
因此,现在我们使用 Rust 来做这件事。首先就是新建一个文件夹
,这个文件夹在什么地方你可以自己定,只要你能找到它就行,你甚至可以创建在桌面。我就创捷到了一个地方,并且将这些项目名字规整的放在一起,方便查看。
二、编写Hello World
现在,找到你创建的文件夹,进入这个文件夹,然后创建个文件 main.rs
,就像下面图中一样,
然后在空白处 右击
,并选择 使用vscode打开
。
其实 Rust 是不限制你使用何种代码编辑器的,哪怕是记事本也可以编写 Rust 代码,我们这里为了方便,就选择了 vscode。
然后在 写代码区域
中写入以下代码,
fn main() { println!("hello rust!"); }
这样 Hello World 就编写完成了。
三、运行程序
运行这个 Rust 程序分为两个步骤,
- 编译
- 运行
编译: 就是将代码编译成二进制可执行程序。
在 vscode 的下方,有个终端选项卡,如下图
编译
现在我们开始编译刚才写的代码,在终端
中输入以下命令运行编译程序,
rustc main.rs
如果没有出现错误,你将出现和我一样的界面
在文件目录会多出两个文件,main.exe
和 main.pdb
。
main.exe
是编译好的可执行文件,你在文件管理器界面直接双击就可以运行main.pdb
是一个包含调试信息的文件
运行
现在我们来运行这个可执行文件,在终端中输入以下命令运行程序
.\main.exe
在终端中就会输出 Hello World了。
现在我们在文件管理器中文件,首先进入你创建项目的文件夹,
双击 main.exe
,你就会发现什么也没有出现,就是电脑屏幕闪了一下。这是没有问题的,因为我们创建的是命令行程序,是没有窗口的,在程序输出完 Hello World 以后就运行结束了,所以什么都看不到。
在空白处 右击
,选择 打开终端
,然后输入以下命令运行,可以得到和之前一样的结果。
.\main.exe
四、分析Hello World
接下来我们对这个编写并运行 Hello World 的流程进行分析。
源码分析
在这段简短的源码中,我们创建了一个 main
函数,并且输出了 Hello World, 以下内容是你要注意的,
- 入口函数是
main
,遵循大多数编程语言的传统
- 大括号标明作用域
- 创建
main
函数,()
中没有内容表示不接受参数
- 语句分号结尾
除此以外,还有一些东西,是我们后面才会学到的东西,你有兴趣可以了解一下,
println!
并不是一个函数调用,这是个宏调用,如果你见到!
表示这是个宏- Rust 缩进风格使用 4 个空格,而不是 1 个制表符
tab
编译过程
在 Rust 中,编译和运行是独立的步骤,你需要将源码编译成可执行文件
,然后再执行这个可执行文件
,
我们使用以下命令进行编译,
rustc main.rs
rustc
是 Rust提供的将源码编译成为可执行文件的程序,接收一个文件名
。main.rs
是源文件的文件名,这里被当作参数传递给 rustc- 两部分要使用空格
总结
现在,你已经学会使用 Rust 来编写一个 Hello World,并且对 Rust 编译和执行有所了解。
作业
考虑以下问题,重复自己在脑海中学过的东西,使对其印象更加深刻,从而让你对本章知识有更深的理解。
- 使用 Rust 输出你的名字
- 回顾 Rust 的编译和运行