Rust开发之——数据类型(6)

一 概述

  • 数据类型分类
  • 标量类型
  • 复合类型

二 数据类型分类

1
Rust类型的分类:标量(scalar)和复合(compound)

三 标量类型

标量类型代表一个单独的值。

Rust 有四种基本的标量类型:整型、浮点型、布尔类型和字符类型

3.1 整形

1、类型分类

长度 有符号 无符号
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
128-bit i128 u128
arch isize usize

2、概念

1
2
3
-取值范围:有符号 和 无符号
-默认类型:整数默认类型为i32
-整型溢出:超过范围

3.2 浮点型

1、类型

单精度 表示
32 位 f32
64 位 f64(默认)

2、示例

1
2
3
4
5
fn main() {
let x = 2.0; // f64

let y: f32 = 3.0; // f32
}

3.3 布尔型

1、取值

类型 取值
bool true
bool false

2、示例

1
2
3
4
5
fn main() {
let t = true;

let f: bool = false; // 显式指定类型注解
}

3.4 字符类型

声明变量 使用符号
let 单引号(如‘z’)

四 复合类型

可以将多个值组合成一个类型。

Rust 有两个原生的复合类型:元组(tuple)和数组(array)。

4.1 元组

1
2
3
4
5
6
7
8
9
1、定义与特点:
由逗号分隔、圆括号包裹的多个值(类型可不同),长度固定。

2、创建示例:
let tup: (i32, f64, u8) = (500, 6.4, 1);。

3、值的获取:
-解构赋值:let (x, y, z) = tup;。
-索引访问:x.0、x.1、x.2(索引从 0 开始)。

4.2 数组

1
2
3
4
5
6
7
8
9
10
11
12
13
1、定义与特点:
中括号内包含相同类型元素,长度固定(声明后不可变)。

2、创建方式:
-直接初始化:let a = [1, 2, 3, 4, 5];。
-类型标注:let a: [i32; 5] = [1, 2, 3, 4, 5];。
-重复元素初始化:let a = [3; 5];(5 个 3)。

3、元素访问:
通过索引(如a[0]),越界访问(如a[10])会在运行时 panic 并报错index out of bounds。

4、应用场景:
适用于栈上分配、元素数量固定的场景(如月份数组),比 vector 灵活度低,vector 可动态调整长度。

五 参考

  • Rust中文官网——数据类型