在 Rust 中,每一个值都属于某一个 数据类型,这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。Rust 是 静态类型语言,也就是说在编译时就必须知道所有变量的类型。根据值及其使用方式,编译器通常可以推断出我们想要用的类型。当多种类型均有可能时,必须增加类型注解,Rust语言中的数据类型包括基础数据类型和复合类型。

一、基础数据类型

1.整数型

整数型:Rust提供了多种整数类型,如i32、u32、i64和u64等,分别代表有符号和无符号的32位和64位整数。整数类型的选择取决于你需要的数值范围和性能要求。

LengthSignedUnsigned
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize

2.浮点型

浮点数型:浮点数类型用于表示带有小数的数值,包括f32和f64,分别是32位和64位浮点数。在进行数学计算时,选择合适的精度可以避免不必要的性能损耗。

fn main() {
	let x = 2.0; // f64
	let y: f32 = 3.0; // f32
}

3.布尔型

布尔型:布尔型(bool)是逻辑值true和false的集合,常用于条件判断和逻辑运算。

fn main() {
	let t = true;
	let f: bool = false; // with explicit type annotation
}

4.字符型

字符型:字符类型(char)用于表示单个Unicode字符。与C语言不同,Rust的char类型使用UTF-8编码,能表示Unicode扩展字符集。

fn main() {
	let c = 'z';
	let z: char = 'ℤ'; // with explicit type annotation
	let heart_eyed_cat = '';
}

二、复合数据类型

1.数组

数组允许你存储同一类型的多个值。它们在内存中是连续的,并且长度固定。数组的类型签名中包含了元素的类型和数组的长度。

let months = ["January", "February", "March", "April", "May", "June", "July",
              "August", "September", "October", "November", "December"];
let ja = months[0];

2.元组

元组(tuple)可以存储不同类型的多个值。它们是有序的,并且每个位置可以有不同的类型。元组通常用于一次性返回多个值。
元组是一个将多个其他类型的值组合进一个复合类型的主要方式。元组长度固定:一旦声明,其长度不会增大或缩小。元组的第一个索引值是 0。可以使用点号(. )后跟值的索引来直接访问它们。

fn main() {
	let tup = (500, 6.4, 1); // 元组
	let (x, y, z) = tup; // 模式匹配解构
	println!("The value of y is: {y}");
	let x = tup.0;
}

当确定元素个数不会改变时,数组会更有用。例如,在一个程序中使用月份名字时,你更应趋向于使用数组而不是 vector,因为你确定只会有 12 个元素。

三、总结

fn main() {
    let x:i32 = 10; // 整形
    let y:f32 = 2.0; // 浮点型
    let hex = 0xff; // 16进制
    let byte = b'A'; // 单字节字符仅限于 u8
    let bool = true; // 布尔
    let c = 'c'; // 字符
    let c = '';
    let tup = (10,"hello",true); // 元组
    let id = tup.0;
    let array = [3;5]; // 数组
    let idx = array[x];
}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部