标量类型
标量只包含一个值,有整数,浮点数,布尔值,字符。
整数
rust中整数类型一共有6种。
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 |
每一个有符号整数的范围是到
,例如i8范围为
到
。
每一个无符号整数的范围为到
,例如u8范围为
到
。
另外,isize和usize根据具体电脑而定:如果是64位系统,那么为64-bit。如果是32位系统,则为32-bit。
浮点数
rust有两种浮点类型,分别为f32和f64。默认类型为f64。
fn main(){ let x = 2.0; //f64 let x: f32 = 3.0; //f32 }
布尔类型
和其他语言一样,布尔类型有两种值:true和false。使用关键字bool来标识
fn main(){ let x = true; let x: bool = false; //显式声明 }
字符类型
字符类型使用关键字char来显示定义。字符类型使用单引号,字符串使用双引号。
fn main(){ let c = 'z'; let z = 'Z'; let k: char = '1'; }
rust种一个字符由四个字节构成。它不仅包含ASCII,还包括中文,日文,韩文字符,表情,0宽度空格。
复合类型
复合类型一种类型可以代表多个值,主要有两种复合类型:tuples和arrays。
元组
元组的个数,可以为1、2、3······
fn main(){ let tup: (i32, f64, u8) = (500, 6.4, 1); }
通过自动匹配的方式,可以获得元组单个值。
fn main(){ let tup = (500, 6.4, 1); let (x, y, z) = tup; println!("{}", y); // 6.4 }
另外可以通过(.)来获取单个值。
fn main(){ let x : (i32, f64, u8) = (500, 6.4, 1); let five_hundred = x.0; let six_point_four = x.1; let one = x.2; }
数组
和tuple不同,数组内的每一个元素类型必须一样,rust中数组的长度是固定的。
数组使用方括号。
-
数组的定义
fn main(){ let a = [1, 2, 3, 4, 5]; }
fn main(){ let a: [i32; 5] = [1, 2, 3, 4, 5]; }
-
数组的初始化
fn main(){ let a = [3; 5]; // a = [3, 3, 3, 3, 3] }
-
数组访问
数组通过下标访问,[]
fn main(){ let a = [1, 2, 3, 4, 5]; let x = a[0]; let y = a[1]; }