アルゴリズムから始める Rust 入門
Rust を使ってアルゴリズムとデータ構造を TDD で学ぶシリーズです。
Rust は所有権モデルによるメモリ安全性と高パフォーマンスを両立するシステムプログラミング言語です。Box<T> や Option<T> を活用した安全なデータ構造実装を通じて、現代的なシステム開発の基盤を学びます。
環境構築
# Nix 開発シェルに入る
nix develop .#rust
# テスト実行
cargo test
章構成
第 1 部: 基本
第 2 部: データ構造
第 3 部: ソートと文字列
第 4 部: 高度なデータ構造
Python 版との対応
| 概念 |
Python |
Rust |
| 型宣言 |
型ヒント(任意) |
静的型付き(コンパイル時検査) |
| テスト |
pytest |
#[cfg(test)] mod tests + cargo test |
| クラス |
class Foo: |
struct + impl |
| 例外 |
raise Exception |
Result<T, E> / Option<T> |
| リスト |
list |
Vec<T> |
| 辞書 |
dict |
HashMap<K, V> |
| None |
None |
Option::None |
| 継承 |
クラス継承 |
トレイト + ジェネリクス |
| メモリ管理 |
参照カウント + GC |
所有権モデル(自動 Drop) |
| ポインタ |
なし |
Box<T>、Rc<T> |
| 文字列 |
str |
String / &str |
| パッケージ |
モジュール |
Cargo ワークスペース(章ごとにクレート分割) |
実装コード
実装コードは apps/rust/ にあります。