Translate

lunes, 10 de julio de 2023

Variables estáticas y constantes en Rust


Se puede declarar constantes en tiempo de compilación:


const DIGEST_SIZE: usize = 3;

const ZERO: Option<u8> = Some(42);


fn compute_digest(text: &str) -> [u8; DIGEST_SIZE] {

    let mut digest = [ZERO.unwrap_or(0); DIGEST_SIZE];

    for (idx, &b) in text.as_bytes().iter().enumerate() {

        digest[idx % DIGEST_SIZE] = digest[idx % DIGEST_SIZE].wrapping_add(b);

    }

    digest

}


fn main() {

    let digest = compute_digest("Hello");

    println!("Digest: {digest:?}");

}


De acuerdo con Rust RFC Book, estos se insertan en el momento del uso.

También puede declarar variables estáticas:

static BANNER: &str = "Welcome to RustOS 3.14";


fn main() {

    println!("{BANNER}");

}