Skip to content

类型系统 (Types)

  • 保证了变量拥有我们期望的形状和行为
  • 保证了变量指向的内存是有效的

实义类型 (concrete type)

  • 数字类型(numeric type):i8i16i32i64i128u8u16u32u64u128f32f64
  • 布尔类型(boolean type):bool
  • 字符类型(character type):char
  • 字符串类型(string type):&strString
  • 单元类型(unit type):()
  • 数组(array):[T; N]
  • 元组(tuple):(T1, T2, T3, ...)
  • 指针(pointer):*const T*mut T
  • 引用(reference):&T&mut T
  • 函数(function):fn(T) -> U
  • 切片(slice):&[T]&mut [T]
  • 枚举(enum):Option<T>Result<T, E>
  • 结构体(struct):struct Point { x: i32, y: i32 }
  • 元组结构体(tuple struct):struct Color(i32, i32, i32)
  • 单元结构体(unit struct):struct Empty

抽象类型 (abstract type) 通过特性(trait)来定义,可以用于多种具体类型

  • 泛型(generic):Option<T>Result<T, E>Vec<T>
  • 特型(trait):IteratorFutureAsyncReadAsyncWrite
  • 特型绑定(trait bound): T: IteratorT: FutureT: AsyncRead + AsyncWrite
  • 生命周期 (lifetime): 'a