Rust 编程语言入门指南
Rust 编程语言入门指南
Rust 是一门现代系统级编程语言,专注于安全、并发和性能。如果你对系统编程感兴趣,Rust 是一个绝佳的选择。
为什么选择 Rust?
Rust 有以下独特优势:
- 内存安全:编译时保证内存安全,无需垃圾回收
- 零成本抽象:高级抽象不影响运行时性能
- 出色的工具链:Cargo 包管理器和构建工具
- 活跃的社区:丰富的库和活跃的开发者社区
安装 Rust
使用 rustup 安装 Rust 工具链:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装后,运行:
cargo --version
rustc --versionHello World
创建第一个 Rust 程序:
fn main() {
println!("Hello, World!");
}
使用 cargo 运行:
cargo run变量和可变性
fn main() {
let x = 5; // 不可变变量
let mut y = 10; // 可变变量
y = 15; // 可以修改
// x = 10; // 错误:不能修改不可变变量
}数据类型
基本类型
fn main() {
// 整数
let a: i32 = 42;
// 浮点数
let b: f64 = 3.14159;
// 布尔
let c: bool = true;
// 字符
let d: char = '🦀';
// 字符串
let e: &str = "Hello";
}数组和向量
fn main() {
// 固定大小数组
let arr: [i32; 5] = [1, 2, 3, 4, 5];
// 动态大小向量
let vec: Vec<i32> = vec![1, 2, 3, 4, 5];
}控制流
fn main() {
// if-else
let number = 6;
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else {
println!("number is not divisible by 4 or 3");
}
// for 循环
for i in 1..=5 {
println!("{}", i);
}
// while 循环
let mut n = 0;
while n < 5 {
println!("{}", n);
n += 1;
}
}所有权和借用
Rust 的核心概念是所有权:
fn main() {
let s1 = String::from("Hello");
let s2 = s1; // s1 的所有权转移到 s2
// println!("{}", s1); // 错误:s1 不再有效
println!("{}", s2);
}
使用引用借用:
fn main() {
let s1 = String::from("Hello");
let len = calculate_length(&s1); // 借用 s1
println!("The length of '{}' is {}.", s1, len);
}
fn calculate_length(s: &String) -> usize {
s.len()
}结构体
struct Person {
name: String,
age: u32,
}
impl Person {
fn new(name: String, age: u32) -> Person {
Person { name, age }
}
fn introduce(&self) {
println!("Hi, I'm {} and I'm {} years old", self.name, self.age);
}
}
fn main() {
let person = Person::new(String::from("Alice"), 30);
person.introduce();
}错误处理
use std::fs::File;
fn main() {
// 使用 match 处理 Result
let file_result = File::open("test.txt");
let file = match file_result {
Ok(file) => file,
Err(error) => panic!("Error opening file: {:?}", error),
};
// 使用 ? 运算符
fn read_file() -> Result<String, std::io::Error> {
let file = File::open("test.txt")?;
Ok(String::from("File read successfully"))
}
}下一步学习
- 学习 Trait 和泛型
- 了解生命周期
- 探索异步编程(async/await)
- 使用第三方 crates
Rust 是一门强大的语言,值得投入时间学习。祝你编程愉快!🦀