用 Rust 写下第一个 “Hello, World!”

一、创建项目目录

首先,我们需要为自己的项目创建一个工作目录,用来存放 Rust 代码。这个目录放在哪里都行,这里推荐在"家"目录(或用户目录)下创建一个 projects 文件夹,并在其中再创建一个专门放置"Hello, world!"程序的子文件夹。

  • Linux、macOS、PowerShell(Windows)示例:

    bash 复制代码
    $ mkdir ~/projects
    $ cd ~/projects
    $ mkdir hello_world
    $ cd hello_world
  • Windows CMD 示例:

    bash 复制代码
    > mkdir "%USERPROFILE%\projects"
    > cd /d "%USERPROFILE%\projects"
    > mkdir hello_world
    > cd hello_world

这样,我们就拥有了一个名为 hello_world 的文件夹来存放代码。

二、编写 main.rs 文件

接下来,创建一个名为 main.rs 的源文件(Rust 代码的后缀名统一是 .rs),并将以下代码写入其中:

rust 复制代码
fn main() {
    println!("Hello, world!");
}
  • fn main() {}:这是 Rust 程序的主入口函数,每个可执行程序都需要有一个 main 函数,执行程序时会从这里开始运行。
  • println!("Hello, world!");:调用了一个 Rust 宏(macro)来向屏幕打印输出 Hello, world!
  • 以分号 (;) 结尾:Rust 中大多数语句都以分号结束。

三、编译并运行

完成编写后,回到命令行,进入到 hello_world 目录中:

  1. 编译程序

    在 Linux、macOS 或 Windows PowerShell 中,输入以下命令:

    bash 复制代码
    $ rustc main.rs

    这会使用 Rust 编译器 rustc 将我们的源代码编译成一个可执行文件。如果在 Linux 或 macOS 上,生成的可执行文件默认为 main,Windows 上会是 main.exe

  2. 运行程序

    编译完成后,通过以下命令执行编译生成的可执行文件:

    • 在 Linux、macOS 或 Windows PowerShell 上:

      bash 复制代码
      $ ./main
    • 在 Windows CMD 上:

      bash 复制代码
      > .\main.exe

终端应该会输出:

复制代码
Hello, world!

如果看到这条输出,恭喜你!你已经成功运行了 Rust 程序,正式踏入了 Rust 的世界。

四、程序结构解析

让我们对这个简单的程序做一点拆解,便于理解:

  1. fn main()

    • fn 是声明函数的关键字。
    • main 是 Rust 可执行程序的入口函数。
    • () 中可以放置参数,但在此我们并不需要。
    • 函数体被 {} 包围。
  2. println!("Hello, world!");

    • println! 是一个宏,而非普通函数。宏在名称后有一个 !,并且可能具有与函数不同的使用规则。
    • 它会在屏幕上打印出括号内给出的字符串,并自动换行。
    • 以分号 ; 结尾。
  3. 文件后缀名

    • Rust 源文件统一使用 .rs。当我们需要把代码拆分为多个文件时,也需遵循同样的扩展名,并用下划线连接多个词(如 hello_world.rs)。

五、编译与运行是分开进行的

在许多动态语言(如 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 的世界里学习愉快、一路顺风!让我们一起期待下一个精彩的项目吧!

相关推荐
徐小黑ACG29 分钟前
GO语言 使用protobuf
开发语言·后端·golang·protobuf
0白露2 小时前
Apifox Helper 与 Swagger3 区别
开发语言
Tanecious.2 小时前
机器视觉--python基础语法
开发语言·python
叠叠乐3 小时前
rust Send Sync 以及对象安全和对象不安全
开发语言·安全·rust
战族狼魂3 小时前
CSGO 皮肤交易平台后端 (Spring Boot) 代码结构与示例
java·spring boot·后端
niandb4 小时前
The Rust Programming Language 学习 (九)
windows·rust
Tttian6224 小时前
Python办公自动化(3)对Excel的操作
开发语言·python·excel
杉之5 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
hycccccch5 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
独好紫罗兰5 小时前
洛谷题单2-P5713 【深基3.例5】洛谷团队系统-python-流程图重构
开发语言·python·算法