Rust 是一种系统编程语言,旨在提供内存安全、并发性和性能。由 Mozilla Research 开发,Rust 专注于提供零成本抽象和保证内存和线程安全,而不牺牲性能。它适用于创建可靠和高效的软件,特别是在需要高性能和保证不出现内存错误的系统级别任务中。
安装 Rust
你可以使用 `rustup`,Rust 的安装器和版本管理工具,来安装 Rust。访问 [Rust 官网](https://www.rust-lang.org/tools/install) 以获取安装指南和 Rust 编辑器的链接。
Hello World 示例
以下是一个简单的 Rust 程序,它将输出 "Hello, world!" 到控制台:
```rust fn main() { println!("Hello, world!"); } ```
Rust 的基本特性
内存安全:Rust 使用所有权(ownership)和借用(borrowing)模型来保证内存安全,无需垃圾收集器。
类型系统:Rust 有一个强大的类型系统,包括类型推断、trait 和泛型。
并发编程:Rust 提供了一套安全的并发编程工具,包括线程和消息传递。
零成本抽象:Rust 允许开发者编写高效的抽象,而不会牺牲性能。
变量和数据类型
Rust 支持多种基本数据类型,如整数、浮点数、布尔值和字符串。
```rust let x = 5; // 整数 let y = 3.14; // 浮点数 let is_true = true; // 布尔值 let name = "Rust"; // 字符串 ```
控制流
Rust 提供了 `if` 条件语句和 `for` 循环。
```rust let condition = true; if condition { println!("Condition is true!"); } else { println!("Condition is false!"); } for i in 0..10 { println!("The number is {}", i); } ```
函数
Rust 中定义函数的方式如下:
```rust fn add(a: i32, b: i32) -> i32 { // 返回两个整数的和 a + b } fn main() { let sum = add(5, 3); println!("The sum is {}", sum); } ```
结构体和枚举
Rust 的结构体(structs)和枚举(enums)用于定义复合数据类型。
```rust struct Point { x: f64, y: f64, } enum Status { Visible, Hidden, } impl Point { fn distance(&self) -> f64 { (self.x.powi(2) + self.y.powi(2)).sqrt() } } fn main() { let p = Point { x: 1.0, y: 2.0 }; println!("Distance: {}", p.distance()); } ```
错误处理
Rust 提供了 `Result` 和 `Option` 类型来处理可能的错误。
```rust fn divide(a: i32, b: i32) -> Result<i32, &'static str> { if b == 0 { Err("Cannot divide by zero") } else { Ok(a / b) } } fn main() { let res = divide(10, 5); match res { Ok(value) => println!("Result is {}", value), Err(msg) => println!("Error: {}", msg), } } ```
并发编程
Rust 提供了线程和消息传递等并发编程工具。
```rust use std::thread; fn main() { let handle = thread::spawn(|| { println!("Hello from the spawned thread!"); }); handle.join().unwrap(); // 等待线程结束 } ```
结论
Rust 是一种现代的系统编程语言,它通过所有权模型解决了内存安全问题,同时保持了高性能。Rust 的设计哲学是“零成本抽象”,这意味着开发者可以编写高效的代码,而不用担心性能损失。Rust 在系统编程、嵌入式系统、网络编程和并发应用等领域越来越受欢迎。如果你对创建高性能和可靠的软件感兴趣,Rust 是一个值得学习的优秀选择。