ふとRustの読み書きができるようになりたいと思い立ち読み始めて、ようやく読み終えたので簡単にまとめを記しておきます。
まとめ
本書を通じて自分が得たまとめを記します。
- CやC++では未定義動作がコンパイラによって検知されず、利用者側がハンドリングする必要があり、脆弱性が生まれる余地がある
- Rustではこの課題に向き合い、コンパイルされたプログラムに未定義動作が存在しないことを約束する
- ただし、unsafeなコードを書くことも可能である
- 所有権と借用という概念が導入されている
- 基本的にコピーではなく値が渡され、所有権が移動する
- 参照には生存期間が伴い、ある値に対して参照することを借用と呼ぶ
- この仕組みによりガベージコレクションが不要になっており、効率的にメモリが扱われる
- 共有参照と可変参照の混在を排除することで、データ競合をなくし、並列プログラミングを容易にする
- Rustは式言語である
- 例えば、値を初期化する際にif式を扱える
- Rustには例外がない
- 例えば、Result型でエラーを扱いmatch式でハンドリングする
- クレート単位で外部に公開する
- モジュール単位で内部構造を整理する
- トレイトを用いて機能拡張が可能である
- 組み込み型に対しても適用可能である
- Futureを用いた非同期関数
- マクロを用いた言語拡張が可能である
- 型チェックより前に呼び出され、パターンマッチで動作する
- unsafeなコードを用いた安全かつ効率的なI/Fの実現
- unsafeなコード利用に関しては、利用者側が注意深く契約を守ることが求められる
- CやC++などで書かれたコードや外部ライブラリを呼び出し可能である
- 計算機のすべての機能を制御することが目的となっている