在 Rust 中,每一个值都属于某一个 数据类型,这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。Rust 是 静态类型语言,也就是说在编译时就必须知道所有变量的类型。根据值及其使用方式,编译器通常可以推断出我们想要用的类型。当多种类型均有可能时,必须增加类型注解,Rust语言中的数据类型包括基础数据类型和复合类型。
一、基础数据类型
1.整数型
整数型:Rust提供了多种整数类型,如i32、u32、i64和u64等,分别代表有符号和无符号的32位和64位整数。整数类型的选择取决于你需要的数值范围和性能要求。
Length | Signed | Unsigned |
---|---|---|
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
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];
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Rust-03-数据类型
发表评论 取消回复