まえがき
導入
1.
事始め
1.1.
インストール
1.2.
Hello, World!
1.3.
Hello, Cargo!
2.
数当てゲームをプログラムする
3.
普遍的なプログラミング概念
3.1.
変数と可変性
3.2.
データ型
3.3.
関数の動作法
3.4.
コメント
3.5.
制御フロー
4.
所有権を理解する
4.1.
所有権とは?
4.2.
参照と借用
4.3.
スライス
5.
構造体を使用して関連のあるデータを構造化する
5.1.
構造体を定義し、インスタンス化する
5.2.
構造体を使用したプログラム例
5.3.
メソッド記法
6.
Enumとパターンマッチング
6.1.
Enumを定義する
6.2.
match制御フロー演算子
6.3.
if letで簡潔な制御フロー
7.
モジュール
7.1.
modとファイルシステム
7.2.
pubで公開するか制御する
7.3.
異なるモジュールの名前を参照する
8.
一般的なコレクション
8.1.
ベクタ型
8.2.
文字列型
8.3.
ハッシュマップ
9.
エラー処理
9.1.
panic!で回復不能なエラー
9.2.
Resultで回復可能なエラー
9.3.
panic!すべきかするまいか
10.
ジェネリック型、トレイト、ライフタイム
10.1.
ジェネリックなデータ型
10.2.
トレイト: 共通の振る舞いを定義する
10.3.
ライフタイムで参照を有効化する
11.
テスト
11.1.
テストを書く
11.2.
テストを走らせる
11.3.
テストの体系化
12.
入出力プロジェクト: コマンドラインプログラムを構築する
12.1.
コマンドライン引数を受け付ける
12.2.
ファイルを読み込む
12.3.
リファクタリングしてモジュール性の向上とエラー処理
12.4.
テスト駆動開発でライブラリの機能を開発する
12.5.
環境変数を取り扱う
12.6.
標準出力ではなく標準エラーにエラーメッセージを書き込む
13.
関数型言語の機能: イテレータとクロージャ
13.1.
クロージャ: 環境をキャプチャできる匿名関数
13.2.
一連の要素をイテレータで処理する
13.3.
入出力プロジェクトを改善する
13.4.
パフォーマンス比較: ループVSイテレータ
14.
CargoとCrates.ioについてより詳しく
14.1.
リリースプロファイルでビルドをカスタマイズする
14.2.
Crates.ioにクレートを公開する
14.3.
Cargoのワークスペース
14.4.
cargo installでCrates.ioからバイナリをインストールする
14.5.
独自のコマンドでCargoで拡張する
15.
スマートポインタ
15.1.
Box
はヒープのデータを指し、既知のサイズである
15.2.
Derefトレイトにより、参照を通してデータにアクセスできる
15.3.
Dropトレイトにより、片付けの時にコードを実行する
15.4.
Rc
は、参照カウント方式のスマートポインタ
15.5.
RefCell
と内部可変性パターン
15.6.
循環参照し、メモリをリークするのは安全である
16.
恐れるな!並行性
16.1.
スレッド
16.2.
メッセージ受け渡し
16.3.
状態共有
16.4.
拡張可能な並行性: SyncとSend
17.
Rustのオブジェクト指向プログラミング機能
17.1.
オブジェクト指向言語の特徴
17.2.
異なる型の値を許容するトレイトオブジェクトを使用する
17.3.
オブジェクト指向デザインパターンを実装する
18.
パターンは値の構造に合致する
18.1.
パターンが使用されるかもしれない箇所全部
18.2.
論駁可能性: パターンが合致しないか
18.3.
パターン記法全部
19.
高度な機能
19.1.
Unsafe Rust
19.2.
高度なライフタイム
19.3.
高度なトレイト
19.4.
高度な型
19.5.
高度な関数とクロージャ
20.
最後のプロジェクト: マルチスレッドのWebサーバを構築する
20.1.
シングルスレッドのWebサーバ
20.2.
シングルスレッドのサーバをマルチスレッド化する
20.3.
優美なシャットダウンとお片付け
21.
付録
21.1.
A - キーワード
21.2.
B - 演算子とシンボル
21.3.
C - 継承可能なトレイト
21.4.
D - マクロ
21.5.
E - 翻訳
21.6.
F - 最新の機能
21.7.
G - Rustが“Nightly Rust”になる方法
Light
(default)
Rust
Coal
Navy
Ayu
The Rust Programming Language
付録
以下の節は、Rustの旅で役に立つと思えるかもしれない参考文献を含んでいます。