Tipos Escalares

TiposLiterais
Inteiros com sinali8, i16, i32, i64, i128, isize-10, 0, 1_000, 123_i64
Inteiros sem sinalu8, u16, u32, u64, u128, usize0, 123, 10_u16
Números de ponto flutuantef32, f643.14, -10.0e20, 2_f32
Strings&str"foo", "two\nlines"
Valores escalares Unicodechar'a', 'α', '∞'
Booleanosbooltrue, false

Os tipos têm os seguintes tamanhos:

  • iN, uN e fN têm N bits,
  • isize e usize são do tamanho de um ponteiro,
  • char tem 32 bits,
  • bool tem 8 bits.

Há algumas sintaxes que não são mostradas acima:

  • Strings brutas permitem que você crie um valor &str com caracteres de escape desabilitados: r"\n" == "\\n". Você pode embutir aspas duplas utilizando uma quantidade igual de # em Ambos os lados das aspas:

    fn main() {
        println!(r#"<a href="link.html">link</a>"#);
        println!("<a href=\"link.html\">link</a>");
    }
  • Strings de byte permitem que você crie um valor &[u8] diretamente:

    fn main() {
        println!("{:?}", b"abc");
        println!("{:?}", &[97, 98, 99]);
    }
  • Todos os sublinhados em números podem ser omitidos, eles são apenas para legibilidade. Por exemplo, 1_000 pode ser escrito como 1000 (ou 10_00), e 123_i64 pode ser escrito como 123i64.