一般社団法人 全国個人事業主支援協会

COLUMN コラム

所有権

Rustの特徴的な機能。ガベージコレクションとはまた違うメモリ管理機能。

所有権のルール

 

  1. Rustの値は、所有者と呼ばれる変数と対応している
  2. いかなる時も所有者は一つである。ムーブで保証する
  3. 所有者がスコープから外れたら、値は破棄される。dropで保証する

所有者

メモリをヒープ領域に確保し、その参照やメモリの確保量を管理する変数

ムーブ

基本的なデータ型以外の変数から変数を行った際、他の言語でいうシャロ―コピーと、元変数の解放が行われる。
let s1 = String::from("Hello");
let s2 = s1; // この時点でs1が無効化され所有者がs2のみになる

drop

変数がスコープから外れる際に呼び出される、各データ型で実装している変数。この関数内でメモリ解放を行う
The following two tabs change content below.

WATANABE REN

千葉県在住のエンジニアです。最近はPythonやってます。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア