Unveränderliche Datenbindung in Rust

RustRustBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab wird das Konzept des Freezens als der Zustand erklärt, in dem Daten unveränderlich mit dem gleichen Namen gebunden sind, sodass sie nicht geändert werden können, bis die unveränderliche Bindung außer Geltungsbereich geht.

Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie main.rs verwenden und es mit rustc main.rs &&./main kompilieren und ausführen.


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{{"Unveränderliche Datenbindung in Rust"}} rust/mutable_variables -.-> lab-99294{{"Unveränderliche Datenbindung in Rust"}} rust/function_syntax -.-> lab-99294{{"Unveränderliche Datenbindung in Rust"}} rust/expressions_statements -.-> lab-99294{{"Unveränderliche Datenbindung in Rust"}} end

Freezing

Wenn Daten unveränderlich mit dem gleichen Namen gebunden werden, werden sie auch gefroren. Gefrorene Daten können nicht geändert werden, bis die unveränderliche Bindung außer Geltungsbereich geht:

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

    {
        // Shadowing durch unveränderliche `_mutable_integer`
        let _mutable_integer = _mutable_integer;

        // Fehler! `_mutable_integer` ist in diesem Bereich gefroren
        _mutable_integer = 50;
        // FIXME ^ Kommentieren Sie diese Zeile aus

        // `_mutable_integer` geht außer Geltungsbereich
    }

    // Ok! `_mutable_integer` ist in diesem Bereich nicht gefroren
    _mutable_integer = 3;
}

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Freezing-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.