Rust-borrowing
錆-借りる
変数の所有権を別の関数に渡してから所有権を返すのは非常に不便です。 Rustは、借用という概念をサポートしています。この概念では、値の所有権が一時的にエンティティに転送され、元の所有者エンティティに返されます。
以下を考慮してください-
メイン関数は、_print_vector()_関数を呼び出します。 ベクトルは、この関数にパラメーターとして渡されます。 ベクターの所有権は、_main()_から_print_vector()_関数にも渡されます。 _main()_関数がベクトル_v_にアクセスしようとすると、上記のコードは以下に示すようにエラーになります。
これは、所有権が別の関数に転送されると、変数または値を最初に所有していた関数が変数または値を使用できなくなるためです。
借入とは何ですか?
関数が一時的に変数/値の制御を別の関数に移すとき、しばらくの間、それは借用と呼ばれます。 これは、変数/値自体を関数に渡すのではなく、変数 (&var_name) への参照を渡すことで実現されます。 変数/値の所有権は、コントロールが渡された関数の実行が完了した後、変数の元の所有者に転送されます。
出力
可変参照
関数は、そのようなリソースへの_mutable reference_を使用して、借りたリソースを変更できます。 可変参照には、 &mut というプレフィックスが付きます。 可変参照は、可変変数でのみ動作できます。
図:整数参照の変更
_main()_関数は、可変整数変数_i_を宣言し、iの可変参照を* add_one()*に渡します。 add_one()は、変数iの値を1増やします。
図:文字列参照の変更
_main()_関数は、変数_name_の可変参照を_display()_関数に渡します。 表示関数は、元の_name_変数に追加の文字列を追加します。