Rust中的数据类型
在本文中,将介绍Rust中的整型、浮点型、布尔类型、字符类型、元组类型、数组类型的声明和简单使用方法;
Rust属于静态类型语言,在编译时就必须知道所有变量的类型;有时变量没有指定类型,编译器也可以根据值及其使用方式,推断出其类型;
整型
fn main() {
let _a = 5; //默认为i32
let _b:i8 = -12;
let _c:u8 = 255;
let _d:i16 = -666;
let _e:u16 = 666;
}
长度 | 有符号整型 | 无符号整形 |
---|---|---|
8bit | i8 | u8 |
16bit | i16 | u16 |
32bit | i32 | u32 |
64bit | i64 | u64 |
128bit | i128 | u128 |
可以是多种数字类型的数字面值允许使用类型后缀,例如:255u8
表示8位无符号整型;
let _a = 255u8;
也可使用_
作为分隔符以方便阅读;
let _a:u32 = 133_333_333; // 133333333
let _b:u8 = 0b1111_0000; //240
Rust中整型的字面值
例 | |
---|---|
十进制 | 123,123_45 |
十六进制 | 0xffff |
八进制 | 0o77 |
二进制 | 0b1111_0000 |
Byte(仅限于u8) | b'a' |
浮点型
Rust中有两个浮点型类型f32
和f64
,分别占32位和64位,用于表示带小数点的数;f32
是单精度浮点数,f64
是双精度浮点数;
let _x = 3.14159; //默认为f64
let _y:f32 = 5.20; //f32
let _z:f64 = 6.66; //f64
所有的浮点型都是有符号的,不存在无符号浮点型;
布尔型
Rust中的布尔类型用bool
表示,有true
和false
两个值;
let _x = true; //编译器能推断类型为bool
let _y:bool = false;
字符类型
Rust中使用char
表示字符类型;
let _c = 'a';
let _z:char = 'b';
元组类型
在Rust中,使用包含在圆括号中的逗号分隔的值列表来创建一个元组,元组中的每一个位置都有一个类型,这些不同值得类型也不必是相同得;
let tup: (i32, f64, i8) = (123, 3.14159, -1);
元组的长度是固定的,一旦声明,其长度不能增大或减小;
访问元组中的元素
let tup: (i32, f64, i8) = (123, 3.14159, -1);
let (x,y,z) = tup;//x=123,y=3.14159,z=-1
let a = tup.0; //a=123
let b = tup.1; //b=3.14159
let c = tup.2; //c=-1
数组类型
在Rust中,将数组的值写在方括号内,用逗号分隔;与元组不同,数组中的每个元素必须相同;Rust中数组的长度是固定的;
let a = [1,2,3,4,5];
let b:[i32;5]=[4,5,6,7,8]; //i32表示元素类型,5表示元素数量
let x = [8;6]; //x包含6个元素,这些元素的初始值都为 8
访问数组中的元素
let a = [1,2,3,4,5];
println!("first number: {}",a[0]);