Volver a la página principal
martes 19 noviembre 2024
3

Cómo declarar constantes en Rust

En Rust, las constantes son valores inmutables que no cambian durante la ejecución del programa. Estas se pueden declarar utilizando las palabras clave const o static. Aunque ambas definen valores constantes, tienen diferencias importantes en su comportamiento y uso.

Declarar constantes con const

La palabra clave const se usa para declarar constantes en tiempo de compilación. Estas deben ser inicializadas con un valor conocido en tiempo de compilación y no pueden depender de resultados calculados en tiempo de ejecución.

Sintaxis:

const NOMBRE_CONSTANTE: Tipo = valor;
  • NOMBRE_CONSTANTE: Se escribe en mayúsculas por convención.
  • Tipo: Es el tipo de dato explícito de la constante.
  • valor: Debe ser un valor literal o evaluable en tiempo de compilación.

Ejemplo:

const PI: f64 = 3.1416;
const MAX_USUARIOS: u32 = 1000;

fn main() {
    println!("El valor de PI es: {}", PI);
    println!("Máximo número de usuarios: {}", MAX_USUARIOS);
}

Salida:

El valor de PI es: 3.1416
Máximo número de usuarios: 1000

Declarar constantes con static

La palabra clave static se utiliza para declarar valores estáticos en memoria. Estos valores también son inmutables por defecto, pero viven en una ubicación fija en memoria durante toda la ejecución del programa.

Sintaxis:

static NOMBRE_CONSTANTE: Tipo = valor;
  • static: Declara un valor almacenado en memoria estática.
  • Tipo: Tipo de dato explícito.
  • valor: Puede incluir referencias a valores constantes.

Ejemplo:

static BIENVENIDA: &str = "Hola, mundo";

fn main() {
    println!("{}", BIENVENIDA);
}

Salida:

Hola, mundo

Diferencias entre const y static

Característica const static
Almacenamiento No ocupa memoria directa, se inyecta en el código. Se almacena en una dirección fija en memoria.
Inmutabilidad Siempre inmutable. Puede ser mutable con static mut.
Tiempo de inicialización En tiempo de compilación. Puede contener referencias estáticas.
Uso Valores constantes usados en cálculos. Valores compartidos globalmente.

Declarar constantes mutables con static mut

En casos especiales, puedes usar static mut para declarar valores globales mutables. Esto debe manejarse con cuidado y generalmente requiere uso de bloques unsafe.

Ejemplo:

static mut CONTADOR: u32 = 0;

fn main() {
    unsafe {
        CONTADOR += 1;
        println!("Contador: {}", CONTADOR);
    }
}

Resumen de buenas prácticas

1. Usa const para valores inmutables que no dependen de cálculos en tiempo de ejecución.

2. Usa static para valores compartidos que necesitan una dirección fija en memoria.

3. Evita usar static mut a menos que sea absolutamente necesario.

Referencia oficial

Para más detalles, consulta la documentación oficial de Rust.

Etiquetas:
rust
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer