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类型。