Rust学習 #7 所有権

fuuuu
·

雑なスタックとヒープの理解

スタック・・・お皿。使用するときは一番上のお皿を使うし、置くときも一番上に置くだけなので処理が早い。迷わない

ヒープ・・・レストランの注文。A席は○○、B席は□□。あれこれと覚えること多い。処理が遅い。よく聞くポインタが関連する概念

メモリ管理について

ガベージコレクションの利用

ガベージコレクションがある言語は、GC(長いので省略)がメモリの管理をしている。今時のだいたいの言語は備えているはず リンク

代表的な言語はJava、Python、Rudy、PHP、JavaScript、Kotlin、Swift、Visual Basic等

プログラマーが頑張る

C、C++ とか

Rustのみ異なる概念

所有権によりメモリ管理の問題を解決していく

どの部分のコードがどのヒープ上のデータを使用しているか把握すること、ヒープ上の重複するデータを最小化すること、 メモリ不足にならないようにヒープ上の未使用のデータを掃除することは全て、所有権が解決する問題です

所有権について

他の言語を触っている間に"shallow copy"と"deep copy"という用語を耳にしたことがあるなら、 データのコピーなしにポインタと長さ、許容量をコピーするという概念は、shallow copyのように思えるかもしれません。 ですが、コンパイラは最初の変数をも無効化するので、shallow copyと呼ばれる代わりに、 ムーブとして知られているわけです。

変数ごとのメモリをムーブしているので、所有権という単語で表現表現しているわけか。なるほど

そして読めば読むほど分からなくなってきて、猛烈な眠気が襲ってきたので本日はここまで。明日は朝から読んでいくことにする