RUST——数据类型
RUST中文官方教程【Link】
1. 标量数据类型
1.1 整型
长度 | 有符号 | 无符号 |
---|---|---|
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit(默认类型) | i32 | u32 |
64-bit | i64 | u64 |
126-bit | i128 | u128 |
arch | isize | usize |
其中in
存储的是\([-2^{(n-1)},2^{(n-1)}-1]\)之间的整数,un
存储的是\([0,2^{n}-1]\)之间的整数;
另外,isize
和 usize
类型依赖运行程序的计算机架构:64 位架构上它们是 64 位的,32 位架构上它们是 32 位的;
可以用这些un
或者in
作为整数的后缀来指定整数的类型,比如57u8
;
允许使用_
作为分隔符方便读数,比如1_000
的值于指定的1000
相同
1.1.1 整型的字面值
数字字面值 | 例子 |
---|---|
Decimal (十进制) | 98_222 |
Hex (十六进制) | 0xff |
Octal (八进制) | 0o77 |
Binary (二进制) | 0b1111_0000 |
Byte (单字节字符)(仅限于u8) | b'A' |
1.2 浮点型
浮点数采用 IEEE-754 标准表示:
f32
-单精度浮点数
f64
-双精度浮点数
默认浮点数是f64
的
fn main() {
let x = 2.0; // f64
let y: f32 = 3.0; // f32
}
1.3 布尔型
bool
,值为true
或者false
,和cpp类似
1.4 字符类型
char类型,这里不举例了,值得一提的是rust有一些自带的可爱的特定字符值
2. 复合类型
可以将多个值组合成一个类型。Rust有两个原生复合类型:元组(yuple)和数组(array);
2.1 元组类型
元组是一个将多个其他类型的值组合进一个复合类型的主要方式。元组长度固定:一旦声明,其长度不会增大或缩小。
我们使用包含在圆括号中的逗号分隔的值列表来创建一个元组。元组中的每一个位置都有一个类型,而且这些不同值的类型也不必是相同的。
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;
//但是直接输出println!({x.0});报错
}
2.2 数组类型
另一个包含多个值的方式是 数组(array)。与元组不同,数组中的每个元素的类型必须相同。Rust 中的数组与一些其他语言中的数组不同,Rust 中的数组长度是固定的。
fn main() {
let a = [1, 2, 3, 4, 5];
let months = ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"];
let a: [i32; 5] = [1, 2, 3, 4, 5];//创建i32的数量为5个的数组
let a = [3; 5];//等价于创建了长度为5,初始值为3的数组
}
访问数组元素,同cpp,不可越界访问:
fn main() {
let a = [1, 2, 3, 4, 5];
let first = a[0];
let second = a[1];
}
本文来自博客园,作者:理想国的糕,转载请注明原文链接:https://www.cnblogs.com/SaltyCheese/p/17302188.html嗷~