La liaison de données immuables en Rust

RustRustBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, le concept de congélation est expliqué comme l'état où les données sont liées par le même nom de manière immuable, ce qui empêche leur modification jusqu'à ce que la liaison immuable sorte de portée.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec 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{{"La liaison de données immuables en Rust"}} rust/mutable_variables -.-> lab-99294{{"La liaison de données immuables en Rust"}} rust/function_syntax -.-> lab-99294{{"La liaison de données immuables en Rust"}} rust/expressions_statements -.-> lab-99294{{"La liaison de données immuables en Rust"}} end

Congélation

Lorsque des données sont liées par le même nom de manière immuable, elles sont également congelées. Les données congelées ne peuvent pas être modifiées tant que la liaison immuable est dans la portée :

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

    {
        // Ombre par `_mutable_integer` immuable
        let _mutable_integer = _mutable_integer;

        // Erreur! `_mutable_integer` est congelé dans cette portée
        _mutable_integer = 50;
        // FIXME ^ Commenter cette ligne

        // `_mutable_integer` sort de portée
    }

    // Ok! `_mutable_integer` n'est pas congelé dans cette portée
    _mutable_integer = 3;
}

Sommaire

Félicitations! Vous avez terminé le laboratoire de Congélation. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.