Rustはトレイト(ScalaのトレイトやHaskellの型クラスのようなもの)に基づく安全で強力な型システム、並行計算、高速な実行などを売りにした新しい言語であるが、他のメジャーな言語にはない特徴として、メモリの管理を静的にチェックする機構を持っていて、デフォルトでデータをスタックに置くことでガベージコレクションを使わないプログラムを書ける。だがこの静的メモリ管理の仕組みがなかなか理解するのが難しい。(個人的な印象。以前に何回か挫折した。) 具体的には、所有権(ownership)、参照による借用(borrowing)、参照の寿命(lifetime)、可変性(mutability)といった概念で、Rustの鬼門だと思われる。 基本的には公式ドキュメントに書いてあることであるが、自分が理解するためという目的もあり、所有権、借用、可変性について以下にまとめてみる。 所有権(ownership
