基本类型

Rust 提供了对各种 基本类型 的访问。示例包括

标量类型

  • 有符号整数:i8i16i32i64i128isize(指针大小)
  • 无符号整数:u8u16u32u64u128usize(指针大小)
  • 浮点数:f32f64
  • char Unicode 标量值,例如 'a''α''∞'(每个 4 个字节)
  • bool 要么是 true 要么是 false
  • 单元类型 (),其唯一可能的值是空元组:()

尽管单元类型的值是一个元组,但它不被视为复合类型,因为它不包含多个值。

复合类型

  • 数组,例如 [1, 2, 3]
  • 元组,例如 (1, true)

变量始终可以进行类型注释。数字可以通过后缀默认进行注释。整数默认为 i32,浮点数默认为 f64。请注意,Rust 还可以从上下文中推断类型。

fn main() {
    // Variables can be type annotated.
    let logical: bool = true;

    let a_float: f64 = 1.0;  // Regular annotation
    let an_integer   = 5i32; // Suffix annotation

    // Or a default will be used.
    let default_float   = 3.0; // `f64`
    let default_integer = 7;   // `i32`

    // A type can also be inferred from context.
    let mut inferred_type = 12; // Type i64 is inferred from another line.
    inferred_type = 4294967296i64;

    // A mutable variable's value can be changed.
    let mut mutable = 12; // Mutable `i32`
    mutable = 21;

    // Error! The type of a variable can't be changed.
    mutable = true;

    // Variables can be overwritten with shadowing.
    let mutable = true;
}

另请参阅

stdmut推断遮蔽