Rust における不変データバインディング

RustRustBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、凍結の概念を、データが同じ名前で不変にバインドされた状態として説明します。この状態では、不変バインドがスコープ外になるまで、データを変更することができません。

注: 実験でファイル名が指定されていない場合、好きなファイル名を使用できます。たとえば、main.rs を使用して、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{{"Rust における不変データバインディング"}} rust/mutable_variables -.-> lab-99294{{"Rust における不変データバインディング"}} rust/function_syntax -.-> lab-99294{{"Rust における不変データバインディング"}} rust/expressions_statements -.-> lab-99294{{"Rust における不変データバインディング"}} end

凍結

データが同じ名前で不変にバインドされると、それはまた「凍結」されます。「凍結」されたデータは、不変バインドがスコープ外になるまで変更できません。

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

    {
        // 不変の`_mutable_integer`によるシャドーイング
        let _mutable_integer = _mutable_integer;

        // エラー!`_mutable_integer`はこのスコープで凍結されています
        _mutable_integer = 50;
        // FIXME ^ この行をコメントアウトしてください

        // `_mutable_integer`がスコープ外になります
    }

    // オッケー!`_mutable_integer`はこのスコープでは凍結されていません
    _mutable_integer = 3;
}

まとめ

おめでとうございます!あなたは凍結の実験を完了しました。あなたの技術を向上させるために、LabExでさらに多くの実験を練習できます。