Rust官方推荐通过rustup管理工具链(包含rustc编译器、Cargo包管理器等)。在终端执行以下命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,重启终端或运行以下命令使环境变量生效:
source $HOME/.cargo/env
验证安装:执行rustc --version(显示Rust编译器版本)、cargo --version(显示Cargo版本),若均返回版本号则说明安装成功。
为提升开发效率,推荐使用Visual Studio Code(VS Code)搭配Rust Analyzer插件:
rustfmt(rustup component add rustfmt),实现代码自动格式化。Rust变量默认不可变(防止意外修改),使用let声明;若需修改,需添加mut关键字:
let x = 5; // 不可变变量
let mut y = 10; // 可变变量
y = 20; // 合法:可变变量可重新赋值
// x = 30; // 错误:不可变变量不能修改
常量使用const声明,必须显式指定类型且值在编译时确定:
const MAX_SCORE: u32 = 1000; // 常量
println!("Max score: {}", MAX_SCORE);
遮蔽(Shadowing):同一作用域内可重新声明同名变量,覆盖之前的定义(常用于类型转换或数据清洗):
let x = 5;
let x = x + 1; // x现在是6
let x = x * 2; // x现在是12
i8/u8(8位有符号/无符号)、i32/u32(32位)、isize/usize(与系统架构相关,用于数组索引);f32(单精度)、f64(双精度,默认);bool(true/false);char(4字节,支持Unicode,用单引号包裹)。.访问或解构:let tup: (i32, f64, char) = (42, 3.14, 'a');
let (x, y, z) = tup; // 解构
println!("x={}, y={}, z={}", x, y, z);
let arr: [i32; 3] = [1, 2, 3]; // 长度为3的i32数组
println!("First element: {}", arr[0]); // 索引从0开始
使用fn关键字定义函数,参数和返回值需显式声明类型。返回值由最后一个表达式隐式返回(无需分号):
fn greet(name: &str) { // 无返回值(返回Unit类型`()`)
println!("Hello, {}!", name);
}
fn add(a: i32, b: i32) -> i32 { // 返回i32类型
a + b // 无分号,隐式返回
}
调用函数:greet("Alice");、let sum = add(5, 10);。
if条件无需括号,但代码块需用{}包裹;可作为表达式返回值:
let number = 7;
if number > 5 {
println!("Greater than 5");
} else if number == 5 {
println!("Equal to 5");
} else {
println!("Less than 5");
}
// if作为表达式
let result = if number > 0 { 10 } else { 20 };
println!("Result: {}", result);
break退出;true时执行;// loop
let mut count = 0;
loop {
println!("Loop: {}", count);
count += 1;
if count >= 3 { break; }
}
// while
let mut num = 3;
while num > 0 {
println!("While: {}", num);
num -= 1;
}
// for
let arr = [10, 20, 30];
for element in arr.iter() { // 使用iter()避免所有权问题
println!("For: {}", element);
}
Cargo是Rust的包管理与构建工具,可快速创建项目:
cargo new hello_rust # 创建名为hello_rust的项目
cd hello_rust # 进入项目目录
项目结构:
hello_rust/
├── Cargo.toml # 项目配置文件(依赖、元数据)
└── src/
└── main.rs # 主入口文件(默认生成Hello World代码)
编辑src/main.rs,替换为自定义代码(如打印“Hello, Rust!”):
fn main() {
println!("Hello, Rust!");
}
运行程序:
cargo run # 编译并运行(自动生成可执行文件)
输出结果:
Hello, Rust!
编译与运行分离:
cargo build(生成target/debug/hello_rust可执行文件);./target/debug/hello_rust。掌握基础语法后,可尝试以下方向深化学习:
String与&str的区别;std::thread模块或tokio异步运行时,编写多线程程序;std::net模块实现TCP/UDP服务器/客户端;clippy(代码检查)、rustfmt(格式化)、cargo test(单元测试)提升代码质量。