- はじめに
- 1. Hello World❱ 
- 1.1. コメント
- 1.2. フォーマットして出力❱ 
- 1.2.1. Debug
- 1.2.2. Display❱ 
- 1.2.2.1. テストケース:リスト
 
- 1.2.3. フォーマット
 
 
- 2. 基本データ型❱ 
- 2.1. リテラルと演算子
- 2.2. タプル
- 2.3. 配列とスライス
 
- 3. カスタム型❱ 
- 3.1. 構造体
- 3.2. 列挙型❱ 
- 3.2.1. use
- 3.2.2. C言語ライクな列挙型
- 3.2.3. テストケース:連結リスト
 
- 3.3. 定数
 
- 4. 変数束縛❱ 
- 4.1. ミュータビリティ
- 4.2. スコープとシャドーイング
- 4.3. 前方宣言
- 4.4. 値の凍結
 
- 5. 型❱ 
- 5.1. 型キャスト
- 5.2. リテラル
- 5.3. 型推論
- 5.4. エイリアス
 
- 6. 型変換❱ 
- 6.1. FromとInto
- 6.2. TryFromとTryInto
- 6.3. Stringとの型変換
 
- 7. 式
- 8. 制御フロー❱ 
- 8.1. if/else
- 8.2. loop❱ 
- 8.2.1. ネストとラベル
- 8.2.2. loopが返す値
 
- 8.3. while
- 8.4. for と range
- 8.5. match❱ 
- 8.5.1. デストラクト❱ 
- 8.5.1.1. タプル
- 8.5.1.2. 配列とスライス
- 8.5.1.3. 列挙型
- 8.5.1.4. ポインタとref
- 8.5.1.5. 構造体
 
- 8.5.2. ガード
- 8.5.3. 束縛
 
- 8.6. if let
- 8.7. let-else
- 8.8. while let
 
- 9. 関数❱ 
- 9.1. メソッド
- 9.2. クロージャ❱ 
- 9.2.1. 要素の捕捉
- 9.2.2. 捕捉時の型推論
- 9.2.3. 匿名型
- 9.2.4. 関数を受け取る関数
- 9.2.5. クロージャを返す関数
- 9.2.6. stdにおける使用例❱ 
- 9.2.6.1. Iterator::any
- 9.2.6.2. イテレータによる検索
 
 
- 9.3. 高階関数
- 9.4. 発散する関数
 
- 10. モジュール❱ 
- 10.1. 可視性
- 10.2. 構造体の場合
- 10.3. use宣言
- 10.4. superとself
- 10.5. ファイルの階層構造
 
- 11. クレート❱ 
- 11.1. ライブラリの作成
- 11.2. ライブラリの利用
 
- 12. Cargo❱ 
- 12.1. 依存関係
- 12.2. 規約
- 12.3. テスト
- 12.4. ビルドスクリプト
 
- 13. アトリビュート❱ 
- 13.1. dead_code
- 13.2. クレート
- 13.3. cfg❱ 
- 13.3.1. 条件の追加
 
 
- 14. ジェネリクス❱ 
- 14.1. 関数
- 14.2. 実装
- 14.3. トレイト
- 14.4. 境界❱ 
- 14.4.1. テストケース:空トレイト
 
- 14.5. 複数の境界
- 14.6. Where句
- 14.7. ニュータイプイディオム
- 14.8. 関連要素❱ 
- 14.8.1. 関連要素が必要になる状況
- 14.8.2. 関連型
 
- 14.9. 幽霊型パラメータ❱ 
- 14.9.1. テストケース:単位を扱う
 
 
- 15. スコープの規則❱ 
- 15.1. RAII
- 15.2. 所有権とムーブ❱ 
- 15.2.1. ミュータビリティ
- 15.2.2. 部分的ムーブ
 
- 15.3. 借用❱ 
- 15.3.1. ミュータビリティ
- 15.3.2. エイリアス
- 15.3.3. refパターン
 
- 15.4. ライフタイム❱ 
- 15.4.1. 明示的アノテーション
- 15.4.2. 関数
- 15.4.3. メソッド
- 15.4.4. 構造体
- 15.4.5. トレイト
- 15.4.6. 境界
- 15.4.7. 強制
- 15.4.8. スタティックライフタイム
- 15.4.9. 省略
 
 
- 16. トレイト❱ 
- 16.1. 導出(Derive)
- 16.2. dynを利用してトレイトを返す
- 16.3. 演算子のオーバーロード
- 16.4. ドロップ
- 16.5. イテレータ
- 16.6. impl Trait
- 16.7. クローン
- 16.8. スーパートレイト
- 16.9. トレイトの曖昧性解決
 
- 17. macro_rules!❱ 
- 17.1. 構文❱ 
- 17.1.1. 識別子
- 17.1.2. オーバーロード
- 17.1.3. 繰り返し
 
- 17.2. DRY (Don't Repeat Yourself)
- 17.3. Domain Specific Languages (ドメイン特化言語、DSLs)
- 17.4. 可変個引数
 
- 18. エラーハンドリング❱ 
- 18.1. panic
- 18.2. abortとunwind
- 18.3. Optionとunwrap❱ 
- 18.3.1. ?によるOptionのアンパック
- 18.3.2. コンビネータ:map
- 18.3.3. コンビネータ:and_then
- 18.3.4. Defaults: or, or_else, get_or_insert, get_or_insert_with
 
- 18.4. Result❱ 
- 18.4.1. Resultのmap
- 18.4.2. Resultに対するエイリアス
- 18.4.3. 早期リターン
- 18.4.4. ?の導入
 
- 18.5. 複数のエラー型❱ 
- 18.5.1. OptionからResultを取り出す
- 18.5.2. エラー型を定義する
- 18.5.3. エラーをBoxする
- 18.5.4. ?の他の活用法
- 18.5.5. エラーをラップする
 
- 18.6. Resultをイテレートする
 
- 19. 標準ライブラリの型❱ 
- 19.1. Box、スタックとヒープ
- 19.2. ベクタ型
- 19.3. 文字列
- 19.4. Option
- 19.5. Result❱ 
- 19.5.1. ?
 
- 19.6. panic!
- 19.7. ハッシュマップ❱ 
- 19.7.1. キー型の変種
- 19.7.2. ハッシュ集合
 
- 19.8. Rc
- 19.9. Arc
 
- 20. 標準ライブラリのその他❱ 
- 20.1. スレッド❱ 
- 20.1.1. テストケース:map-reduce
 
- 20.2. チャネル
- 20.3. ファイルパス
- 20.4. ファイル I/O❱ 
- 20.4.1. open
- 20.4.2. create
- 20.4.3. read lines
 
- 20.5. 子プロセス❱ 
- 20.5.1. パイプ
- 20.5.2. ドロップの延期
 
- 20.6. ファイルシステムとのやり取り
- 20.7. 引数処理❱ 
- 20.7.1. 引数のパース
 
- 20.8. 他言語関数インターフェイス
 
- 21. テスト❱ 
- 21.1. ユニットテスト
- 21.2. ドキュメンテーションテスト
- 21.3. 統合テスト
- 21.4. 開発中の依存関係
 
- 22. 安全でない操作❱ 
- 22.1. インラインアセンブリ
 
- 23. 互換性❱ 
- 23.1. 生識別子
 
- 24. 周辺情報❱ 
- 24.1. ドキュメンテーション
- 24.2. プレイグラウンド