WEB3DEV Español

Cover image for Primeros pasos con Rust: una introducción a la sintaxis
Juan José Gouvêa
Juan José Gouvêa

Posted on

Primeros pasos con Rust: una introducción a la sintaxis

Rust, un lenguaje de programación de código abierto desarrollado por Mozilla, está diseñado teniendo en cuenta la seguridad, la velocidad y la programación concurrente. Su sintaxis es diferente a la de los lenguajes de programación tradicionales, pero es intuitiva y fácil de aprender una vez que se comprenden los conceptos básicos. En este artículo, exploraremos los tipos de datos básicos, las variables y la mutabilidad, el flujo de control, las funciones y los comentarios de Rust.

Tipos de datos básicos

Rust es un lenguaje de tipo estático, lo que significa que el tipo de cada variable debe conocerse en tiempo de compilación. Rust proporciona varios tipos de datos básicos, que incluyen:

Enteros

Rust tiene dos categorías principales de números enteros: con y sin signo. Cada categoría puede tener 8, 16, 32, 64 o 128 bits de longitud. Además, Rust tiene tipos isize y usize, que dependen de la arquitectura de la máquina. Por ejemplo:

let x: u8 = 255; // unsigned 8-bit integer
let y: i64 = -5000; // signed 64-bit integer
Enter fullscreen mode Exit fullscreen mode

Booleanos

En Rust, los valores booleanos se declaran mediante la palabra clave bool. Pueden ser true o false. Por ejemplo:

let is_true: bool = true;
let is_false: bool = false;
Enter fullscreen mode Exit fullscreen mode

Cadenas de texto

En Rust hay dos tipos de cadenas de texto: String y &str. String es una estructura de datos ubicada en el heap que es mutable y puede crecer, mientras que &str es una cadena de texto inmutable de longitud fija almacenada en algún lugar de la memoria. Por ejemplo:

let mut s: String = "Hola".to_string(); // cadena mutable
let t: &str = "Mundo"; // fragmento de cadena inmutable
Enter fullscreen mode Exit fullscreen mode

Variables y Mutabilidad

Por defecto, las variables en Rust son inmutables. Esto es una parte fundamental del enfoque de Rust hacia la seguridad y la concurrencia sencilla. Para declarar una variable mutable, es necesario utilizar la palabra clave mut. Por ejemplo:

let x = 5; // x es inmutable
let mut y = 6; // y es mutable
y = 7; // esto es válido
// x = 8; // esto causaría un error
Enter fullscreen mode Exit fullscreen mode

Flujo de Control

Rust ofrece varias estructuras para el control del flujo, incluyendo if, loop, while y for.

If

La palabra clave if permite la ejecución condicional del código. Por ejemplo:

let numero = 6;
if numero % 2 == 0 {
    println!("El número es par.");
} else {
    println!("El número es impar.");
}
Enter fullscreen mode Exit fullscreen mode

Loop

La palabra clave loop permite bucles infinitos. Puedes usar break para salir del bucle. Por ejemplo:

let mut contador = 0;
loop {
    contador += 1;
    if contador == 10 {
        break;
    }
}
Enter fullscreen mode Exit fullscreen mode

While

La palabra clave while permite bucles que se ejecutan mientras una condición sea verdadera. Por ejemplo:

let mut numero = 5;
while numero != 0 {
    println!("{}", numero);
    numero -= 1;
}
Enter fullscreen mode Exit fullscreen mode

For

La palabra clave for permite iterar sobre elementos de una colección, como arreglos y vectores. Por ejemplo:

let numeros = [1, 2, 3, 4, 5];
for numero in numeros.iter() {
    println!("{}", numero);
}
Enter fullscreen mode Exit fullscreen mode

Funciones

Las funciones son los bloques de construcción de un programa en Rust. Agrupan el código que realiza una tarea específica, lo que mejora la reusabilidad y la legibilidad.

Definición de Funciones

En Rust, se declaran funciones con la palabra clave fn. Aquí tienes la sintaxis:

fn nombre_de_la_funcion(parametros) -> tipo_de_retorno {
    // Cuerpo de la función.
}
Enter fullscreen mode Exit fullscreen mode

function_name es el nombre de la función, parameters son las entradas de la función, y return_type es el tipo del valor de salida.

Por ejemplo, la siguiente función add toma dos enteros i32 como parámetros y devuelve su suma, que también es un entero i32:

fn add(x: i32, y: i32) -> i32 {
    return x + y;
}
Enter fullscreen mode Exit fullscreen mode

Invocación de Funciones

Puedes invocar una función utilizando su nombre seguido de un conjunto de paréntesis que encierran cualquier argumento. Así es como podemos llamar a la función add:

let suma = add(5, 6);
println!("La suma es: {}", suma); // La suma es: 11
Enter fullscreen mode Exit fullscreen mode

Declaraciones y Expresiones en Funciones

En Rust, una función se compone de declaraciones y expresiones. Las declaraciones realizan alguna acción y no devuelven un valor, mientras que las expresiones evalúan a un valor. En los cuerpos de las funciones, la última expresión se devuelve implícitamente:

fn add(x: i32, y: i32) -> i32 {
    x + y // no es necesario el keyword `return`
}
Enter fullscreen mode Exit fullscreen mode

Comentarios

Los comentarios son notas explicativas que añades a tu código para que los humanos puedan leerlo; son ignoradas por el compilador de Rust. Los comentarios son fundamentales para hacer que tu código sea comprensible para otros y para recordarte a ti mismo lo que hace tu código.

Comentarios de una sola línea

Los comentarios de una sola línea comienzan con //. Rust ignora todo lo que sigue a // en la misma línea:

// Este es un comentario de una sola línea.
Enter fullscreen mode Exit fullscreen mode

Comentarios de múltiples líneas

Para comentarios que abarcan varias líneas, se utiliza /* para iniciar el comentario y */ para finalizarlo:

/* Este es un comentario de múltiples líneas.
   Se extiende a lo largo de varias líneas. */
Enter fullscreen mode Exit fullscreen mode

Comentarios de documentación

Rust también admite un tipo especial de comentario para la documentación. Estos comienzan con /// para comentarios de línea o /** ... */ para comentarios de bloque. Cuando ejecutas el comando cargo doc, Rust genera documentación basada en estos comentarios:

/// Esta función suma dos enteros.
///
/// # Ejemplos
///
/// let suma = add(5, 7);
/// assert_eq!(suma, 12);
///
fn add(x: i32, y: i32) -> i32 {
    x + y
}
Enter fullscreen mode Exit fullscreen mode

En esta introducción, hemos cubierto los conceptos básicos de funciones y comentarios en Rust. A medida que continúes tu viaje con Rust, encontrarás casos de uso de funciones más complejos como funciones con parámetros genéricos, funciones asociadas y expresiones de cierre. De manera similar, para los comentarios, aprenderás cómo escribir comentarios de documentación más efectivos utilizando la sintaxis de Markdown.


¡Gracias por leer este artículo!

Fué escrito por Aurora Poppyseed, y traducido al Español por Juan José Gouvêa.

Discussion (0)