1. Hello, World!

Hello, World! 学习卡片

任务说明

本案例的目标是创建并运行你的第一个 Rust 程序。你将使用 Cargo(Rust 的构建工具和包管理器)初始化一个新项目,编写一个输出 Hello, World! 的程序,并通过 Cargo 运行它。完成本案例后,你将熟悉 Rust 项目的基本目录结构以及 cargo new 和 cargo run 这两个最常用的命令。

前置条件

开始之前,请确认你的计算机上已经安装了 Rust 工具链(包括 rustc 和 cargo)。在终端中执行以下命令验证安装:

cargo --version

如果命令输出了类似 cargo 1.x.x 的版本号,说明环境已就绪。若提示找不到命令,请先前往 rustup.rs 安装 Rust。

实现步骤

整个任务在终端中完成,共分为三步:创建项目、编写代码、运行程序。

1. 创建新项目

打开终端,进入你希望存放代码的目录(例如 projects),然后执行:

cargo new hello_world

该命令会创建一个名为 hello_world 的新目录。Cargo 会自动在其中生成以下文件:

  • Cargo.toml:项目的配置文件,记录依赖和元数据。
  • src/main.rs:源代码文件,Cargo 默认生成的入口文件。
  • .gitignore:Git 版本控制的忽略规则(若在 Git 仓库内创建则自动生成)。

2. 编写程序代码

进入项目目录并打开 src/main.rs:

cd hello_world

将文件内容替换为以下代码:

fn main() {
    println!("Hello, World!");
}

这段代码定义了一个 main 函数,它是 Rust 程序的入口点。函数体内的 println! 是一个宏,负责将文本输出到控制台并在末尾自动换行。

3. 编译并运行

在项目根目录(即包含 Cargo.toml 的目录)执行:

cargo run

Cargo 会先编译项目,然后运行生成的可执行文件。首次运行会多花一些时间,因为 Cargo 需要构建依赖(本例无外部依赖,因此很快)。

验证与判定标准

执行 cargo run 后,观察终端输出。满足以下条件即判定本案例通过:

  • 终端显示了编译过程信息(如 Compiling hello_world v0.1.0),且没有报错。
  • 在编译信息之后,单独一行输出了 Hello, World!。
  • 项目目录中出现了 Cargo.lock 文件(由 Cargo 自动生成,用于锁定依赖版本)以及 target 目录(存放编译产物)。

预期输出如下(具体编译行可能因 Cargo 版本略有差异):

   Compiling hello_world v0.1.0 (/path/to/hello_world)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.5s
     Running `target/debug/hello_world`
Hello, World!

注意:以上输出中的编译耗时是示例值,实际耗时取决于你的机器性能。你只需确认最后一行输出了 Hello, World! 即可。

项目结构说明

完成上述步骤后,你的项目目录结构应如下所示:

hello_world/
├── Cargo.toml
├── Cargo.lock
├── src/
│   └── main.rs
└── target/          # 编译输出目录(自动生成)
    └── debug/
        └── hello_world  # 可执行文件

其中 Cargo.toml 是项目的核心配置文件,默认内容类似:

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

[dependencies]

edition = "2021" 指定了 Rust 语言版本,[dependencies] 部分目前为空,表示没有外部依赖。

cargo new 与 cargo run 流程 $ cargo new hello_world Created binary (application) package hello_world/ ├── Cargo.toml ├── src/ └── main.rs (编辑此文件) $ cargo run Compiling hello_world v0.1.0 Finished dev profile Hello, World!

常见问题排查

  • 提示 command not found: cargo:说明 Rust 未安装或未加入 PATH。请重新运行 rustup-init 并重启终端。
  • 编译报错 error: expected `;`:检查 main.rs 中 println! 行末尾是否缺少分号。
  • 运行后无输出:确认当前终端目录是 hello_world 根目录(包含 Cargo.toml),而不是 src 子目录。

至此,你已经成功创建并运行了第一个 Rust 程序,掌握了 Cargo 项目的基本工作流程。