变量和数据类型的基本概念
在 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 编程语言至关重要。