En Rust, los tipos de datos son fundamentales para escribir programas seguros y eficientes. Este tema cubre los tipos de datos básicos que Rust ofrece, cómo declararlos y usarlos, y algunos ejemplos prácticos para ilustrar su uso.
Tipos de Datos Primitivos
Rust tiene varios tipos de datos primitivos que se pueden dividir en las siguientes categorías:
-
Escalares:
- Enteros
- Punto Flotante
- Booleanos
- Caracteres
-
Compuestos:
- Tuplas
- Arrays
Enteros
Los enteros en Rust pueden ser con signo (i) o sin signo (u) y vienen en varios tamaños:
Tipo | Tamaño | Rango |
---|---|---|
i8 | 8 bits | -128 a 127 |
i16 | 16 bits | -32,768 a 32,767 |
i32 | 32 bits | -2,147,483,648 a 2,147,483,647 |
i64 | 64 bits | -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 |
i128 | 128 bits | -170,141,183,460,469,231,731,687,303,715,884,105,728 a 170,141,183,460,469,231,731,687,303,715,884,105,727 |
isize | tamaño del puntero | depende de la arquitectura |
u8 | 8 bits | 0 a 255 |
u16 | 16 bits | 0 a 65,535 |
u32 | 32 bits | 0 a 4,294,967,295 |
u64 | 64 bits | 0 a 18,446,744,073,709,551,615 |
u128 | 128 bits | 0 a 340,282,366,920,938,463,463,374,607,431,768,211,455 |
usize | tamaño del puntero | depende de la arquitectura |
Ejemplo de uso de enteros:
fn main() { let x: i32 = 42; // Entero con signo de 32 bits let y: u8 = 255; // Entero sin signo de 8 bits println!("x: {}, y: {}", x, y); }
Punto Flotante
Rust soporta dos tipos de números de punto flotante: f32
y f64
.
Tipo | Tamaño | Precisión |
---|---|---|
f32 | 32 bits | Precisión simple |
f64 | 64 bits | Precisión doble |
Ejemplo de uso de punto flotante:
fn main() { let x: f32 = 3.14; // Número de punto flotante de 32 bits let y: f64 = 2.71828; // Número de punto flotante de 64 bits println!("x: {}, y: {}", x, y); }
Booleanos
El tipo booleano en Rust se representa con bool
y puede tener dos valores: true
o false
.
Ejemplo de uso de booleanos:
Caracteres
El tipo char
en Rust representa un carácter Unicode y ocupa 4 bytes.
Ejemplo de uso de caracteres:
fn main() { let letter: char = 'R'; let emoji: char = '😊'; println!("Letra: {}, Emoji: {}", letter, emoji); }
Tipos de Datos Compuestos
Tuplas
Las tuplas pueden agrupar múltiples valores de diferentes tipos en una sola estructura.
Ejemplo de uso de tuplas:
fn main() { let tuple: (i32, f64, char) = (42, 3.14, 'R'); let (x, y, z) = tuple; // Desestructuración de la tupla println!("x: {}, y: {}, z: {}", x, y, z); }
Arrays
Los arrays en Rust tienen un tamaño fijo y todos sus elementos deben ser del mismo tipo.
Ejemplo de uso de arrays:
Ejercicios Prácticos
Ejercicio 1: Declaración y Uso de Variables
- Declara una variable entera
a
de tipoi32
y asígnale el valor 10. - Declara una variable de punto flotante
b
de tipof64
y asígnale el valor 20.5. - Declara una variable booleana
c
y asígnale el valortrue
. - Declara una variable de carácter
d
y asígnale el valor'Z'
. - Imprime todas las variables.
Solución:
fn main() { let a: i32 = 10; let b: f64 = 20.5; let c: bool = true; let d: char = 'Z'; println!("a: {}, b: {}, c: {}, d: {}", a, b, c, d); }
Ejercicio 2: Uso de Tuplas y Arrays
- Declara una tupla
my_tuple
que contenga un entero5
, un punto flotante3.14
y un carácter'A'
. - Desestructura la tupla en tres variables y luego imprímelas.
- Declara un array
my_array
de tipoi32
con los valores[10, 20, 30, 40, 50]
. - Imprime el tercer elemento del array.
Solución:
fn main() { let my_tuple: (i32, f64, char) = (5, 3.14, 'A'); let (x, y, z) = my_tuple; println!("x: {}, y: {}, z: {}", x, y, z); let my_array: [i32; 5] = [10, 20, 30, 40, 50]; println!("Tercer elemento: {}", my_array[2]); }
Conclusión
En esta sección, hemos cubierto los tipos de datos básicos en Rust, incluyendo enteros, punto flotante, booleanos, caracteres, tuplas y arrays. Estos tipos de datos son fundamentales para cualquier programa en Rust y proporcionan una base sólida para construir aplicaciones más complejas. En el próximo tema, exploraremos las funciones en Rust, que nos permitirán organizar y reutilizar el código de manera eficiente.
Curso de Programación en Rust
Módulo 1: Introducción a Rust
- ¿Qué es Rust?
- Configuración del Entorno de Rust
- Programa "Hola, Mundo!"
- Sintaxis y Estructura Básica