Rust 入门篇:Rust 基础语法综合教程
Rust 是一种现代化、安全、并发的系统级编程语言,具有强大的功能和丰富的特性。本教程将深入探讨 Rust 的基础语法,包括变量与数据类型、函数、模式匹配、所有权与借用、Trait 和泛型以及错误处理等内容,并提供实际示例帮助您更好地理解。
变量与数据类型
在 Rust 中,您可以使用 let
关键字声明变量,而数据类型通常由编译器进行推断,但也可以显式指定。
fn main() { let num = 10; // 整数变量 let message = "Hello, Rust!"; // 字符串变量 let float_num: f64 = 3.14; // 显式指定数据类型 println!("Number: {}", num); println!("Message: {}", message); println!("Floating Point Number: {}", float_num); }
函数
函数是 Rust 程序的基本构建块之一,您可以使用 fn
关键字定义函数。
// 定义一个简单的函数,用于计算两个数的和 fn add(a: i32, b: i32) -> i32 { a + b // 返回值是最后一个表达式的结果,不需要使用 return 关键字 } fn main() { let result = add(5, 3); println!("Result: {}", result); // 输出:Result: 8 }
控制流
Rust 支持常见的控制流结构,如条件表达式和循环。
fn main() { let num = 10; // 使用 if-else 表达式进行条件判断 if num > 0 { println!("Positive"); } else if num < 0 { println!("Negative"); } else { println!("Zero"); } // 使用循环打印数字 for i in 1..=5 { println!("{}", i); } // 使用 match 表达式匹配值 match num { 1 => println!("One"), 2 => println!("Two"), _ => println!("Other"), } }
模式匹配
模式匹配是 Rust 中非常强大的特性,它允许您根据数据的结构进行分支处理。
fn main() { let num = 5; match num { 1 => println!("One"), 2 | 3 | 5 => println!("Prime"), 4..=7 => println!("Between 4 and 7"), _ => println!("Other"), } }
所有权与借用
Rust 中的所有权系统确保了内存安全,它通过所有权、借用和生命周期来管理内存。
fn main() { let mut vec = vec![1, 2, 3]; // 使用引用进行借用 let first = &vec[0]; println!("First element: {}", first); // 修改可变引用 vec.push(4); // 再次使用引用 println!("First element: {}", first); // 这里仍然可以访问 first }
Trait 和泛型
Trait 是 Rust 中用于共享方法签名的一种机制,而泛型允许您编写更加灵活的函数和数据结构。
// 定义一个 trait trait Printable { fn print(&self); } // 实现 trait impl Printable for i32 { fn print(&self) { println!("Value: {}", self); } } fn print_all<T: Printable>(items: Vec<T>) { for item in items { item.print(); } } fn main() { let nums = vec![1, 2, 3]; print_all(nums); }
错误处理
Rust 提供了 Result 枚举类型来处理可能发生错误的情况,以及简便的 ? 运算符来处理错误。
use std::fs::File; use std::io::{self, Read}; fn read_file() -> Result<String, io::Error> { let mut file = File::open("example.txt")?; let mut content = String::new(); file.read_to_string(&mut content)?; Ok(content) } fn main() { match read_file() { Ok(content) => println!("File content: {}", content), Err(error) => println!("Error reading file: {}", error), } }
结论
通过本教程,您深入了解了 Rust 的基础语法,包括变量与数据类型、函数、控制流、模式匹配、所有权与借用、Trait 和泛型以及错误处理等内容。这些是您学习 Rust 编程语言的第一步。接下来,您可以继续学习 Rust 的更多高级特性和用法,探索其丰富的生态系统。
希望这个教程对您有所帮助,祝您学习愉快,编程顺利!