所有権(ownership)と借用(borrowing)とライフタイム(lifetime)はRust特有の言語仕様として有名である。 Rustではガベージコレクション(GC)を使用せずにメモリ安全性を確保するために所有権と借用とライフタイムの仕様を採用している。 この機構によって、Rustではプログラマが変数の値が有効である範囲を意識する必要がある代わりに、GCに関する実行時のオーバーヘッドがなくともメモリ安全でありスレッドセーフであるプログラムを記述することができる。 一方で、所有権は「『変数が値の所有権を持っている』というのは結局何のことなのかわからない」という混乱を生む要因でもある。 単純に考えると、変数に値が入っているのだから、変数が値を持っているのは当然のことのように思える。 そうすると、「値の所有権を持つ」とは一体何のことを言っているのかがはっきりとしなくなってしまう。 この混