Primitivas
Rust proporciona acceso a una amplia variedad de primitivas. Algunos ejemplos son:
Tipos Escalares
- Enteros con signo:
i8,i16,i32,i64,i128yisize(el tamaño del puntero) - Enteros sin signo:
u8,u16,u32,u64,u128yusize(el tamaño del puntero) - Punto flotante:
f32,f64 charValores de Unicode escalares como'a','α'y'∞'(4 bytes cada uno)boolpuede sertrueofalso- El tipo unitario
(), cuyo único posible valor es la tupla vacía:()
A pesar de que el valor de un tipo de unidad es una tupla, no se considera untipo de compuesto porque no contiene múltiples valores.
Tipos Compuestos
- Arreglos como
[1, 2, 3] - Tuplas como
(1, true)
Las variables siempre pueden llevar anotación de tipos. Los números también pueden seranotados a través de un sufijo o por default. Los enteros usan como default i32 y los flotantes usan a f64. Tenga en cuenta que Rust puede también puede inferir tipos.
fn main() {
// Las variables pueden llevar anotaciónes de tipo.
let logical: bool = true;
let a_float: f64 = 1.0; // Anotación regular
let an_integer = 5i32; // Anotación con sufijo
// O se usará un default.
let default_float = 3.0; // `f64`
let default_integer = 7; // `i32`
// Un tipo también se puede inferir por context.
let mut inferred_type = 12; // El tipo i64 se puede inferir de otra línea.
inferred_type = 4294967296i64;
// Una mariable mutable puede cambiar.
let mut mutable = 12; // `i32` Mutable
mutable = 21;
// Error! El tipo de la variable no se puede cambiar.
mutable = true;
// Las variables se puede sobreescribir con sombreo.
let mutable = true;
/* Tipos compuestos - Arreglo y Tupla */
// La declaración del tipo de Arreglo consiste del tipo T y la longitud como [T; longitud].
let my_array: [i32; 5] = [1, 2, 3, 4, 5];
// Tuple is a collection of values of different types
// and is constructed using parentheses ().
let my_tuple = (5u32, 1u8, true, -5.04f32);
}