Rust基础知识入门
Rust 是一种系统级编程语言,以其安全性、速度和并发性而闻名。以下是一些 Rust 入门的关键知识点,以及具体的代码示例和详细说明:
-
Hello World 程序:这是学习任何编程语言的第一步。在 Rust 中,程序的入口点是
main
函数。1 2 3
fn main() { println!("Hello, world!"); }
这段代码使用
println!
宏打印出 “Hello, world!” 到控制台。注意 Rust 中的宏以!
结尾 。 -
变量绑定:在 Rust 中,使用
let
来绑定变量。变量默认是不可变的,但可以使用mut
关键字使其可变。1 2
let x = 5; // 不可变变量 let mut y = 10; // 可变变量
这里
x
是一个不可变变量,而y
是可变的 。 -
数据类型:Rust 是一种静态类型语言,需要明确或让编译器推断变量的类型。
1 2
let a: i32 = 20; // 显式指定类型 let b = 20; // 编译器根据值推断类型
i32
是一个有符号的 32 位整数类型 。 -
函数:定义函数使用
fn
关键字,函数可以返回值。1 2 3
fn add(a: i32, b: i32) -> i32 { a + b }
这个
add
函数接受两个i32
类型的参数并返回它们的和 。 -
控制流:Rust 提供了常见的控制流结构,如
if
/else
和loop
。1 2 3 4 5 6
let condition = true; if condition { println!("Condition is true"); } else { println!("Condition is false"); }
-
结构体和枚举:用于创建自定义数据类型。
1 2 3 4 5 6 7 8 9
struct Point { x: i32, y: i32, } enum Message { ChangeColor(i32, i32, i32), MoveCursor { x: i32, y: i32 }, }
这里定义了一个
Point
结构体和一个包含不同类型变体的Message
枚举 。 -
错误处理:Rust 使用
Result
类型来处理可能失败的操作。1 2 3 4 5 6 7
fn divide(a: i32, b: i32) -> Result<i32, String> { if b == 0 { Err(String::from("Cannot divide by zero")) } else { Ok(a / b) } }
这个
divide
函数在除数为零时返回Err
,否则返回Ok
包装的商 。 -
模块和包管理:使用
mod
创建模块,使用cargo
作为包管理器和构建系统。1 2 3 4 5
mod math_functions { pub fn add(a: i32, b: i32) -> i32 { a + b } }
math_functions
模块包含一个公共函数add
。 -
生命周期和借用:Rust 的所有权系统确保内存安全,避免数据竞争。
1 2 3 4 5 6 7
fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.len() > s2.len() { s1 } else { s2 } }
这个
longest
函数展示了生命周期注解的使用 。
这些知识点和示例为 Rust 入门提供了坚实的基础。更多的学习资源和示例可以在 Rust 官方文档和社区教程中找到 。