每个变量在rust中都有特定的数据类型,大抵分为两类:标量与复合类类型。
一、标量类:
1、integer类型(
i代表的取值范畴为:-2的n-1次方~2的n-1次方-1;
u代表的取值范畴为:0~2的n次方-1;
~~~~
):
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、Floating-Point类型:rust蕴含两种公有的float数据类型:f32和f64
,例如:
fn main() { let x = 2.0; // f64 let y: f32 = 3.0; // f32}
数值之间的运算:rust反对根本的加减乘除数值运算,然而有一个根本的前提条件就是参加运算的数值必须是雷同类型的数据变量,其计算结果类型也是雷同的数据类型,例如:
fn main() { // 加 let sum = 5 + 10; //15 // 减 let difference = 95.5 - 4.3; //91.2 // 乘 let product = 4 * 30; //120 // 除 let quotient = 56.7 / 32.2; //1.7608695652173911 let quotient = 13 / 6; //2 // 取余 let remainder = 43 % 5;}
3、Boolean类型:定义rust语言中的boolean变量比较简单,能够带上标识(bool)也能够不带上此标识,例如:
fn main() { let t = true; let f: bool = false;}
二、复合类(rust通常蕴含两种内置的复合类数据类型:tuple与array):
1、tuple类型:
rust中元组是将多种类型的多个值组合为一个复合类型的个别办法。 元组的长度是固定的:申明后,它们就无奈增长或放大。咱们通过在括号内编写逗号分隔的值列表来创立元组。 元组中的每个地位都有一个类型,并且元组中不同值的类型不用雷同。 例如,可选的类型正文:
fn main() { let tup: (i32, f64, u8) = (500, 6.4, 1);}
变量tup绑定到整个元组,因为元组被视为单个复合元素。 为了从元组中取出单个值,能够应用模式匹配和变量.索引值
来获取元组值,如下所示:
fn main() { let tup = (500, 6.4, 1); let (x, y, z) = tup; let firstValue = tup.0; //500 println!("The value of y is: {}", y); //6.4}
2、Array类型:
array类型与tuple的区别是数组中的所有变量的类型必须统一,且应用索引获取变量的时候索引值不能超过数组长度,其根本定义和应用与ts十分相似,例如:
fn main() { //定义一个全部都是整数类型的数组 let a = [1, 2, 3, 4, 5]; //定义一个全部都是str类型的数组: let months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 定义一个定义好类型与固定长度的数组: let a: [i32; 5] = [1, 2, 3, 4, 5]; 定义一个含有默认值且大小固定的数组: let a = [3; 5]; //`let a = [3, 3, 3, 3, 3];` //获取数组中的值: let first_value = a[0]; //3 //获取超过数组长度的时候,rust在编译的时候会报错,比方: let some_index_value = a[100]; //index out of bounds: the len is 5 but the index is 100}