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
ade tipoi32y asígnale el valor 10. - Declara una variable de punto flotante
bde tipof64y asígnale el valor 20.5. - Declara una variable booleana
cy asígnale el valortrue. - Declara una variable de carácter
dy 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_tupleque contenga un entero5, un punto flotante3.14y un carácter'A'. - Desestructura la tupla en tres variables y luego imprímelas.
- Declara un array
my_arrayde tipoi32con 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
