Tipos escalares

TiposLiterales
Enteros con signoi8, i16, i32, i64, i128, isize-10, 0, 1_000, 123_i64
Enteros sin signou8, u16, u32, u64, u128, usize0, 123, 10_u16
Números de coma flotantef32, f643.14, -10.0e20, 2_f32
Cadenas de texto (Strings)&str"foo", "two\nlines"
Valores escalares Unicodechar'a', 'α', '∞'
Booleanosbooltrue, false

Los tipos tienen la siguiente anchura:

  • iN, uN, and fN son N bits de capacidad,
  • isize y usize tienen el ancho de un puntero,
  • char tiene un tamaño de 32 bits,
  • bool tiene 8 bits de ancho.

Hay algunas sintaxis que no se han mostrado anteriormente:

  • Las cadenas sin formato te permiten crear un valor &str con los escapes inhabilitados: r"\n" == "\\n". Puedes insertar comillas dobles con la misma cantidad de # a cada lado de ellas:

    fn main() {
        println!(r#"<a href="link.html">link</a>"#);
        println!("<a href=\"link.html\">link</a>");
    }
  • Las cadenas de bytes te permiten crear un valor &[u8] directamente:

    fn main() {
        println!("{:?}", b"abc");
        println!("{:?}", &[97, 98, 99]);
    }
  • Todos guiones bajos en los números pueden no utilizarse, ya que solo sirven para facilitar la lectura. Por lo tanto, 1_000 se puede escribir como 1000 (o 10_00), y 123_i64 se puede escribir como 123i64.