变量和数据类型的基本概念
在 Rust 中,变量默认是不可变的。这意味着一旦一个变量被赋值,它的值就不能被改变。如果需要可变变量,你需要使用 mut 关键字。
let x = 5; // 不可变变量 let mut y = 10; // 可变变量
Rust 的类型系统非常严格。编译器会在编译时检查每个变量的类型,确保类型安全。这意味着你不能将一个整数类型的数据赋给一个浮点型变量,反之亦然。
基本数据类型
整数类型
Rust 提供了多种整数类型,包括有符号和无符号类型,以及不同位宽的类型。常见的整数类型包括:
i8,u8: 8位整数i16,u16: 16位整数i32,u32: 32位整数i64,u64: 64位整数isize,usize: 根据系统位数决定的整数类型(32位系统上为32位,在64位系统上为64位)
let a: i32 = 5; let b: u8 = 255;
浮点类型
Rust 支持两种浮点数类型:f32 和 f64。其中 f64 是默认类型。
let pi: f32 = 3.14; let gravity: f64 = 9.8;
布尔类型
布尔类型只有两个值:true 和 false。
let is_raining: bool = false;
字符类型
Rust 使用 char 类型来表示字符,其大小为4个字节,并且能够支持Unicode字符。
let letter: char = 'a'; let emoji: char = '😀';
元组
元组可以存储不同类型的数据,但它们的长度是固定的。
let tuple: (i32, f64, u8) = (500, 6.4, 1);
你可以通过索引来访问元组中的元素:
let tuple: (i32, f64, u8) = (500, 6.4, 1); let first_element = tuple.0; let second_element = tuple.1; let third_element = tuple.2;
数组
数组是一种固定长度的数据结构,所有元素都必须具有相同的类型。
let arr: [i32; 5] = [1, 2, 3, 4, 5];
你可以通过索引来访问数组中的元素:
let arr: [i32; 5] = [1, 2, 3, 4, 5]; let first_element = arr[0]; let last_element = arr[4];
复合数据类型
结构体
结构体是一种用户自定义的数据类型,允许你组合不同的字段。
struct Point {
x: f64,
y: f64,
}
let origin = Point { x: 0.0, y: 0.0 };枚举
枚举类型允许你定义一组命名的常量。
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
let m = Message::Write(String::from("hello"));Option 枚举
Option<T> 是一个特别有用的枚举类型,用于表示可能存在也可能不存在的值。
let some_number = Some(5);
let some_string = Some("a string");
let absent_number: Option<i32> = None;切片
切片是一种引用类型,允许你引用一个数组的一部分。
fn main() {
let a = [1, 2, 3, 4, 5];
let slice = &a[1..3];
println!("The first element of the slice is: {}", slice[0]);
println!("The length of the slice is: {}", slice.len());
}以上就是 Rust 中基本的数据类型介绍。理解这些基本类型及其用途对于掌握 Rust 编程语言至关重要。