Rust - 数据类型
1、数据类型
- 数据类型分为:标量和复合类型
- rust是一门静态语言,在编译时必须都表明变量的类型,否则编译不通过
1.1、标量类型
- 一个标量类型代表一个单个的值
- Rust有四个主要的标量类型
- 整数类型
- 浮点类型
- 布尔类型
- 字符类型
1.1.1、整数类型
- 整数类型没有小数部分,有符号类型的数值是有正有负,无符号类型的数值都是正的
- 例如u32就是一个无符号的整数类型,占据32位的空间
- 无符号整数类型以u开头
- 有符号整数类型以i开头
Length | Signed | Unsigned |
---|---|---|
8bit | i8 | u8 |
16bit | i16 | u16 |
32bit | i32 | u32 |
64bit | i64 | u64 |
128bit | i128 | i128 |
arch | isize | usize |
- isize和usize类型的位数由程序运行的计算机的架构所决定
- 如果是64位计算机,那就是64位(i64和u64)
- 如果是32位计算机,那就是64位(i32和u32)
1.1.2、浮点类型
- Rust有两种基础的浮点类型,也就是含有小数部分的类型
- f32,32位,单精度
- f64,64位,双精度
1.1.3、数值操作
- 加减乘除余
fn main() {
let sum = 5 + 10 ;
let difference = 95.5 - 4.3;
let product = 4 * 30;
let quotient = 57.6 / 32.2;
let reminder = 54 % 5;
}
1.1.4、布尔类型
- Rust的布尔类型也有两个值:true和false
- 一个字节大小
- 符号是bool
fn main() {
let t = true;
let f:bool = false;
}
1.1.5、字符类型
- Rust语言中char类型被用来描述语言中最基础的单个字符
- 字符类型的字面值使用单引号
- 占用4个字节大小
- 是Unicode标量值,可以表示比ASCII多得多的字符内容:拼音、中日韩文、零长度空白字符、表情
fn main() {
let x = 'z';
let y:char = 'y';
let z = '😀';
}
1.2、复合类型
- 复合类型可以将多个值放在一个类型里
- Rust提供了两种基础的复合类型:元组(Tuple)、数组
1.2.1、元组
- 元组可以将多个类型的多个值放在一个类型里
- 元组的长度是固定的:一旦声明就无法改变
fn main() {
// 创建元组
// 在小括号里,将值用逗号分开
// 每个位置对应一个类型,元素类型不必相同
let t:(i32,f64,char) = (55,14.1,'s');
// 获取元组里的值
// 1、模式匹配
let (x,y,z) = t;
println!("{}, {}, {}, ",x,y,z);
// 2、访问元组的元素,从0开始
println!("{}, {}, {}, ", t.0, t.1, t.2);
}
1.2.2、数组
- 数组也可以将多个值放在一个类型里
- 数组中每个元素的类型必须相同
- 数组的长度也是固定的
fn main() {
// 声明数组
let a = [1,2,3,4,5,6,7,8,9];
// 另一种声明数组的方法,如果元素值都相同
// 这样相当于 let b = [3,3,3,3,3]
let b = [3;5];
// 访问数组元素
let one = a[0];
println!("{}, {} ",one,a[2]);
}
推荐阅读: