Inferencia de tipos
Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 12 de 75.
En Rust, la inferencia de tipos permite al compilador deducir automáticamente el tipo de una variable basándose en su valor y uso. Esto significa que a menudo no es necesario especificar explícitamente el tipo al declarar una variable, haciendo que su código sea más conciso y fácil de leer.
Por ejemplo:
let x = 5;
// Rust infiere que x es un i32
let y = 3.14;
// Rust infiere que y es un f64
let message = "Hello, world!";
// Rust infiere que message es un &str (cadena)
let is_true = true;
// Rust infiere que is_true es un boolEn estos ejemplos, no especificamos los tipos de x, y, message y is_true. El compilador de Rust infirió automáticamente sus tipos basándose en los valores que se les asignaron.
La inferencia de tipos no solo es conveniente, sino que también ayuda a prevenir errores. El compilador comprueba cómo se utilizan las variables y garantiza que los tipos inferidos sean coherentes en todo el código. Si hay un conflicto, el compilador generará un error.
Desafío
PrincipianteEscribe un programa en Rust que demuestre la inferencia de tipos. Declara e inicializa las siguientes variables sin anotaciones de tipo explícitas:
- Una variable llamada
quantitycon el valor10. - Una variable llamada
pricecon el valor99.99. - Una variable llamada
messagecon el valor"Coddy is awesome!". - Una variable llamada
is_availablecon el valortrue.
Después de declarar estas variables, usa println!() para mostrar sus valores en la consola. Observa cómo Rust infiere los tipos de estas variables basándose en sus valores.
Hoja de referencia
La inferencia de tipos de Rust permite que el compilador deduzca automáticamente los tipos de variables basándose en sus valores, eliminando la necesidad de anotaciones de tipo explícitas en muchos casos.
let x = 5; // Rust infiere i32
let y = 3.14; // Rust infiere f64
let message = "Hello, world!"; // Rust infiere &str
let is_true = true; // Rust infiere boolEl compilador verifica el uso de las variables para asegurar la consistencia de tipos y generará errores si existen conflictos.
Pruébalo tú mismo
fn main() {
// Declarar variables aquí
// Mostrar los valores
println!("Quantity: {}", quantity);
println!("Price: {}", price);
println!("Message: {}", message);
println!("Is available: {}", is_available);
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 1
Operadores aritméticosOperador de móduloAtajos aritméticosOperadores de comparaciónComparación de strings5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaInferencia de tiposResumen - Inicializar variablesConversión de tipos9Bucles
For sobre seriesBucle WhileBreakContinueBucle anidadoEtiquetas de bucleBucle infinitoResumen - Entrada dinámica