用 Rust 写下第一个 “Hello, World!”
一、创建项目目录
首先,我们需要为自己的项目创建一个工作目录,用来存放 Rust 代码。这个目录放在哪里都行,这里推荐在“家”目录(或用户目录)下创建一个 projects
文件夹,并在其中再创建一个专门放置“Hello, world!”程序的子文件夹。
-
Linux、macOS、PowerShell(Windows)示例:
$ mkdir ~/projects $ cd ~/projects $ mkdir hello_world $ cd hello_world
-
Windows CMD 示例:
> mkdir "%USERPROFILE%\projects" > cd /d "%USERPROFILE%\projects" > mkdir hello_world > cd hello_world
这样,我们就拥有了一个名为 hello_world
的文件夹来存放代码。
二、编写 main.rs 文件
接下来,创建一个名为 main.rs
的源文件(Rust 代码的后缀名统一是 .rs
),并将以下代码写入其中:
fn main() {
println!("Hello, world!");
}
fn main() {}
:这是 Rust 程序的主入口函数,每个可执行程序都需要有一个main
函数,执行程序时会从这里开始运行。println!("Hello, world!");
:调用了一个 Rust 宏(macro)来向屏幕打印输出Hello, world!
。- 以分号 (
;
) 结尾:Rust 中大多数语句都以分号结束。
三、编译并运行
完成编写后,回到命令行,进入到 hello_world
目录中:
-
编译程序:
在 Linux、macOS 或 Windows PowerShell 中,输入以下命令:$ rustc main.rs
这会使用 Rust 编译器
rustc
将我们的源代码编译成一个可执行文件。如果在 Linux 或 macOS 上,生成的可执行文件默认为main
,Windows 上会是main.exe
。 -
运行程序:
编译完成后,通过以下命令执行编译生成的可执行文件:-
在 Linux、macOS 或 Windows PowerShell 上:
$ ./main
-
在 Windows CMD 上:
> .\main.exe
-
终端应该会输出:
Hello, world!
如果看到这条输出,恭喜你!你已经成功运行了 Rust 程序,正式踏入了 Rust 的世界。
四、程序结构解析
让我们对这个简单的程序做一点拆解,便于理解:
-
fn main()
fn
是声明函数的关键字。main
是 Rust 可执行程序的入口函数。()
中可以放置参数,但在此我们并不需要。- 函数体被
{}
包围。
-
println!("Hello, world!");
println!
是一个宏,而非普通函数。宏在名称后有一个!
,并且可能具有与函数不同的使用规则。- 它会在屏幕上打印出括号内给出的字符串,并自动换行。
- 以分号
;
结尾。
-
文件后缀名
- Rust 源文件统一使用
.rs
。当我们需要把代码拆分为多个文件时,也需遵循同样的扩展名,并用下划线连接多个词(如hello_world.rs
)。
- Rust 源文件统一使用
五、编译与运行是分开进行的
在许多动态语言(如 Ruby、Python、JavaScript)中,通常只需要一条命令便可运行脚本,而 Rust(类似 C/C++)是先编译再运行,这样做有以下好处:
- 提前发现问题:编译器在生成可执行文件前,会对你的代码做严格的检查,这能在运行前就发现很多潜在错误。
- 更快的执行速度:Rust 是 “提前编译” 的语言,把结果编译为与平台无关的高效可执行文件,不依赖额外的解释器或虚拟机。
- 无需安装环境:你可以把编译好的可执行文件给别人使用,对方不需要安装 Rust 环境。
六、如果程序无法正常运行
- 检查是否安装或配置好 Rust:可通过
rustc --version
和查看系统的PATH
环境变量来确认编译器是否在正确位置。 - 参考安装部分的故障排除:若仍无法解决,Rust 社区(Rust Community)是一个非常好的学习与交流场所,Rustaceans(Rust 用户)会热心地提供帮助。
七、后续进阶:Cargo 工具
使用 rustc
命令编译简单小程序是非常直接的,但当项目规模变得复杂时,我们需要一种更方便的管理方式——这就是 Cargo。它是 Rust 的包管理工具与构建系统,能够帮助你轻松管理项目依赖、测试、打包和发布等一系列操作。在下一个阶段,你将会接触并熟悉 Cargo,从而更高效地进行 Rust 开发。
八、总结
- 你在一个名为
hello_world
的文件夹下编写了一个main.rs
文件,并成功编译运行,打印出Hello, world!
。 - Rust 是一种提前编译的语言,先编译再运行的模式可以在运行前就发现问题,并且编译后的二进制文件速度快且无需安装环境即可执行。
- 接下来,你可以了解更多 Rust 语法,学习 Cargo 等工具,深入探索 Rust 在不同场景下的应用!
现在,你已经完成了第一个 Rust 程序,成为了一名真正的 Rustacean。继续前行,你会发现 Rust 的更多魅力所在——无论是安全性、高性能,还是现代化的语法与社区氛围,都值得好好体验。
祝你在 Rust 的世界里学习愉快、一路顺风!让我们一起期待下一个精彩的项目吧!