标量类型

类型字面量
有符号整数i8, i16, i32, i64, i128, isize-10, 0, 1_000, 123_i64
无符号整数u8, u16, u32, u64, u128, usize0, 123, 10_u16
浮点数f32, f643.14, -10.0e20, 2_f32
字符串&str"foo", "two\nlines"
Unicode 标量类型char'a', 'α', '∞'
布尔值booltrue, false

各类型占用的空间为:

  • iN, uNfN 占用 N 位,
  • isizeusize 占用一个指针大小的空间,
  • char is 32 bits wide,
  • bool is 8 bits wide.

上表中还有一些未提及的语法:

  • 原始字符串可在创建 &str 时禁用转义:r"\n" == "\\n"。可以在外层引号两侧添加相同数量的 #,以在字符串中嵌入双引号:

    fn main() {
        println!(r#"<a href="link.html">link</a>"#);
        println!("<a href=\"link.html\">link</a>");
    }
  • 字节串可以用于直接创建 &[u8] 类型的值:

    fn main() {
        println!("{:?}", b"abc");
        println!("{:?}", &[97, 98, 99]);
    }
  • 数字中的所有下划线均可忽略,它们只是为了方便辨识。因此,“1_000”可以写为“1000”(或“10_00”),而“123_i64”可以写为“123i64”。