Vinculación de datos inmutables en Rust

RustRustBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, el concepto de congelación se explica como el estado en el que los datos están vinculados por el mismo nombre de manera inmutable, lo que los impide ser modificados hasta que el enlace inmutable sale del ámbito.

Nota: Si el laboratorio no especifica un nombre de archivo, puede usar cualquier nombre de archivo que desee. Por ejemplo, puede usar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/BasicConceptsGroup -.-> rust/mutable_variables("Mutable Variables") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") subgraph Lab Skills rust/variable_declarations -.-> lab-99294{{"Vinculación de datos inmutables en Rust"}} rust/mutable_variables -.-> lab-99294{{"Vinculación de datos inmutables en Rust"}} rust/function_syntax -.-> lab-99294{{"Vinculación de datos inmutables en Rust"}} rust/expressions_statements -.-> lab-99294{{"Vinculación de datos inmutables en Rust"}} end

Congelación

Cuando los datos se enlazan por el mismo nombre de manera inmutable, también se congelan. Los datos congelados no pueden ser modificados hasta que el enlace inmutable sale del ámbito:

fn main() {
    let mut _mutable_integer = 7i32;

    {
        // Sombreado por `_mutable_integer` inmutable
        let _mutable_integer = _mutable_integer;

        // Error! `_mutable_integer` está congelado en este ámbito
        _mutable_integer = 50;
        // FIXME ^ Comenta esta línea

        // `_mutable_integer` sale del ámbito
    }

    // Ok! `_mutable_integer` no está congelado en este ámbito
    _mutable_integer = 3;
}

Resumen

¡Felicidades! Has completado el laboratorio de Congelación. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.