Rust原始数据类型
官方手册:https://doc.rust-lang.org/beta/std/index.html#primitives。
理解什么是原始数据类型(primitive type)
有些数据就是简简单单的,比如数字3,它就是一个数值3,编译器或解释器不需要任何其他信息来识别它,只要看到3就知道它是一个数值类型。
但是有些数据类型稍微复杂一点,除了要存储数据本身之外,编译器或解释器还需要再多保存一点关于该数据的元数据信息。比如数组类型,除了存储数组中各元素数据之外,还需要额外存储数组的长度信息,这样编译器或解释器才知道数组到哪里结束,这里数组的长度就是数组类型的元数据。
所谓原始数据类型,就是该类型的数据只需要数据本身即可,没有额外元数据。
Rust有很多种原始数据类型(primitive type),这些原始数据类型都是Rust内置的类型(在核心库core中定义而非标准库std中定义的类型)。包括数据大小固定的机器类型(Machine Type)、某些组合类型和其他一些Rust语言必要的内置类型。
包括:
- 机器类型(大小是固定的)
- bool
- u8、u16、u32、u64、u128、usize
- i8、i16、i32、i64、i128、isize
- f32、f64
- char
- 组合类型
- Tuple
- Array
- 其他语言必要类型
- Slice,即切片类型
- str,即字符串切片类型
- !,即never类型
- (),即Unit类型
- reference,即引用类型
- pointer,即裸指针类型
- fn,即函数指针类型
本章会介绍其中一些原始数据类型,还会额外简单地介绍一个非原始数据类型:String类型。