Rust入门教程:从Cargo到所有权,一文吃透核心概念

Rust零基础入门教程,覆盖安装、变量、所有权等核心概念
本文是一份浓缩的Rust零基础入门教程,从环境搭建(rustc和Cargo工具链)开始,依次讲解变量默认不可变性、mut关键字、常量声明、变量遮蔽(Shadowing)等基础概念,并介绍了Cargo作为包管理和构建工具的生态价值。文章特别关注从其他语言转Rust时的常见踩坑点,适合有编程基础的开发者快速上手。
前言:为什么这篇文章值得一读
这是一份浓缩的Rust零基础入门教程,脱胎于一场高强度的一小时Rust训练营。与其花大量篇幅说服你学Rust,不如直接带你从安装到核心概念走一遍。本文将覆盖变量与类型、函数、所有权与借用、控制流、集合等关键主题,尤其会重点拆解那些让其他语言开发者频繁踩坑的地方。
Rust的诞生背景:Rust诞生于2006年,最初是Mozilla员工Graydon Hoare的个人项目,2010年Mozilla正式赞助,2015年发布1.0稳定版。Rust的核心设计目标是在不牺牲性能的前提下提供内存安全保证——这在系统编程语言领域是革命性的突破。微软曾披露其安全漏洞中约70%源于内存安全问题,而Rust通过编译期的所有权系统彻底解决了这类问题,同时保持了与C/C++相当的运行时性能。这也是Rust连续多年在Stack Overflow开发者调查中荣登"最受喜爱编程语言"榜首的根本原因。

环境搭建与Hello World
安装Rust工具链
安装Rust非常简单,搜索"Install Rust"即可找到官方安装页面。安装完成后,通过 rustc --version 验证版本。Rust是编译型语言,rustc 是编译器,cargo 是包管理和构建工具——有了这两个就可以开工了。
手动编译 vs 使用Cargo
新建一个 main.rs 文件,写下经典的Hello World:
fn main() {
println!("Hello, World!");
}
你可以用 rustc main.rs 手动编译,然后运行生成的可执行文件。但每次修改代码都要重新编译再运行,流程比较繁琐。
更推荐的方式是用Cargo初始化项目:cargo new rust_live。Cargo会自动创建项目结构,包括 src/main.rs、Cargo.toml(类似Node.js的 package.json)和 .gitignore。运行项目只需执行 cargo run,它会自动完成编译和执行。
Cargo的生态价值:Cargo不仅是构建工具,更是Rust生态系统的核心基础设施。它统一管理依赖(通过crates.io包注册中心,目前托管超过15万个crate)、构建、测试、文档生成和发布流程。Cargo.lock锁定精确的依赖版本,确保构建的可重现性——这对生产环境部署至关重要。cargo还内置了cargo test(单元测试)、cargo doc(文档生成)、cargo clippy(代码质量检查)等工具链,相比C/C++生态长期缺乏统一包管理工具的现状,这是Rust在工程实践层面的重要优势。
实用技巧:使用 cargo run -q(quiet模式)可以隐藏编译信息,只显示程序输出。另外,cargo new 会创建新文件夹,而 cargo init 则在当前目录初始化项目。
变量、常量与基础类型
变量默认不可变
Rust用 let 声明变量,但变量默认是不可变的(immutable)。如果你尝试给一个不可变变量重新赋值,编译器会直接报错。这对JavaScript或Python开发者来说是个不小的思维转变。
let x = 5;
// x = 6; // 编译错误!
let mut x = 5;
x = 6; // 加上 mut 关键字才能修改
Rust编译器虽然严格,但报错信息非常精准,甚至会建议你如何修复——比如提示你加上 mut 关键字。
常量声明与变量遮蔽(Shadowing)
常量用 const 声明,始终不可变,必须显式标注类型,命名采用全大写加下划线分隔的风格,且必须在声明时赋值。
变量遮蔽(Shadowing) 是Rust的一个独特概念:可以在同一作用域用相同名字声明新变量,新变量会"遮住"旧变量。遮蔽和可变性的核心区别在于——遮蔽可以改变类型,而 mut 只能改变值:
let spaces = " \
相关推荐
教程攻略Cursor+Codex双IDE协同:开源项目二开实战方法论
基于实战经验总结的开源项目二次开发完整方法论,详解Cursor+Codex双IDE协同工作流,涵盖二开七环节、MVP验证、AI读源码技巧,帮助开发者三天跑通项目、两周完成业务集成。
教程攻略Cursor多Agent实战:50分钟搭建Next.js全栈博客
使用Cursor IDE多Agent协作模式,50分钟内从零搭建全栈博客。涵盖Next.js、Clerk认证、Supabase数据库集成,详解4个AI Agent分阶段开发流程与关键避坑经验。
教程攻略从零搭建AI软件工厂:Cursor工程师的多Agent协作实战经验
Cursor工程师Eric分享AI软件工厂构建实战:从自动化六层级、护栏设计、并行Agent管理到规模化扩展,详解如何用多Agent协作实现7×24小时高效软件开发。