标量类型(scalar)

  • 整数类型

    isize, usize取决于程序运行的目标平台; 在64位架构上,它们就是64位的,而在32位架构上,它们就是32位的

  • 浮点数类型

    • f32 单精度浮点数, f64 双精度浮点数;
      fn main() {
        let x = 2.0; // f64 默认
        let y: f32 = 3.0; // f32
      }
  • 布尔类型

    • 占据单个字节的空间大小
      fn main() {
        let t = true;
        let f:bool = false;
      }
  • 字符类型

    • char 类型 占4字节,是一个Unicode标量值, 使用单引号指定
      fn main() {
        let a = 'aaa';
        let b = '';
      }

复合类型(compound)

  • 元组(tuple)

    • 固定长度,可以由不同类型的多个值组合
      fn main() {
        let tup: (i32, f64, u8) = (-500, 50.2, 5);
        // 解构元组
        let (a, b, _c) = tup;
        // 元组的索引使用.语法
        println!("a: {}, b: {}, c: {}", a, b, tup.2);
      }
  • 数组类型(array)

    • 固定长度,每个元素类型相同

      fn main() {
        let arr = [1, 2, 3, 4];
        println!("first: {}", arr[0]);
      
        let same = [6; 3]; // 等同于 [6, 6, 6]
      }