1. はじめに
  2. Hello World
    1. コメント
    2. フォーマットして出力
      1. Debug
      2. Display
        1. テストケース:リスト
      3. フォーマット
  3. 基本データ型
    1. リテラルと演算子
    2. タプル
    3. 配列とスライス
  4. カスタム型
    1. 構造体
    2. 列挙型
      1. use
      2. C言語ライクな列挙型
      3. テストケース:連結リスト
    3. 定数
  5. 変数束縛
    1. ミュータビリティ
    2. スコープとシャドーイング
    3. 前方宣言
    4. 値の凍結
    1. 型キャスト
    2. リテラル
    3. 型推論
    4. エイリアス
  6. 型変換
    1. FromとInto
    2. TryFromとTryInto
    3. Stringとの型変換
  7. 制御フロー
    1. if/else
    2. loop
      1. ネストとラベル
      2. loopが返す値
    3. while
    4. for と range
    5. match
      1. デストラクト
        1. タプル
        2. 配列とスライス
        3. 列挙型
        4. ポインタとref
        5. 構造体
      2. ガード
      3. 束縛
    6. if let
    7. let-else
    8. while let
  8. 関数
    1. メソッド
    2. クロージャ
      1. 要素の捕捉
      2. 捕捉時の型推論
      3. 匿名型
      4. 関数を受け取る関数
      5. クロージャを返す関数
      6. stdにおける使用例
        1. Iterator::any
        2. イテレータによる検索
    3. 高階関数
    4. 発散する関数
  9. モジュール
    1. 可視性
    2. 構造体の場合
    3. use宣言
    4. superとself
    5. ファイルの階層構造
  10. クレート
    1. ライブラリの作成
    2. ライブラリの利用
  11. Cargo
    1. 依存関係
    2. 規約
    3. テスト
    4. ビルドスクリプト
  12. アトリビュート
    1. dead_code
    2. クレート
    3. cfg
      1. 条件の追加
  13. ジェネリクス
    1. 関数
    2. 実装
    3. トレイト
    4. 境界
      1. テストケース:空トレイト
    5. 複数の境界
    6. Where句
    7. ニュータイプイディオム
    8. 関連要素
      1. 関連要素が必要になる状況
      2. 関連型
    9. 幽霊型パラメータ
      1. テストケース:単位を扱う
  14. スコープの規則
    1. RAII
    2. 所有権とムーブ
      1. ミュータビリティ
      2. 部分的ムーブ
    3. 借用
      1. ミュータビリティ
      2. エイリアス
      3. refパターン
    4. ライフタイム
      1. 明示的アノテーション
      2. 関数
      3. メソッド
      4. 構造体
      5. トレイト
      6. 境界
      7. 強制
      8. スタティックライフタイム
      9. 省略
  15. トレイト
    1. 導出(Derive)
    2. dynを利用してトレイトを返す
    3. 演算子のオーバーロード
    4. ドロップ
    5. イテレータ
    6. impl Trait
    7. クローン
    8. スーパートレイト
    9. トレイトの曖昧性解決
  16. macro_rules!
    1. 構文
      1. 識別子
      2. オーバーロード
      3. 繰り返し
    2. DRY (Don't Repeat Yourself)
    3. Domain Specific Languages (ドメイン特化言語、DSLs)
    4. 可変個引数
  17. エラーハンドリング
    1. panic
    2. abortとunwind
    3. Optionとunwrap
      1. ?によるOptionのアンパック
      2. コンビネータ:map
      3. コンビネータ:and_then
      4. Defaults: or, or_else, get_or_insert, get_or_insert_with
    4. Result
      1. Resultのmap
      2. Resultに対するエイリアス
      3. 早期リターン
      4. ?の導入
    5. 複数のエラー型
      1. OptionからResultを取り出す
      2. エラー型を定義する
      3. エラーをBoxする
      4. ?の他の活用法
      5. エラーをラップする
    6. Resultをイテレートする
  18. 標準ライブラリの型
    1. Box、スタックとヒープ
    2. ベクタ型
    3. 文字列
    4. Option
    5. Result
      1. ?
    6. panic!
    7. ハッシュマップ
      1. キー型の変種
      2. ハッシュ集合
    8. Rc
    9. Arc
  19. 標準ライブラリのその他
    1. スレッド
      1. テストケース:map-reduce
    2. チャネル
    3. ファイルパス
    4. ファイル I/O
      1. open
      2. create
      3. read lines
    5. 子プロセス
      1. パイプ
      2. ドロップの延期
    6. ファイルシステムとのやり取り
    7. 引数処理
      1. 引数のパース
    8. 他言語関数インターフェイス
  20. テスト
    1. ユニットテスト
    2. ドキュメンテーションテスト
    3. 統合テスト
    4. 開発中の依存関係
  21. 安全でない操作
    1. インラインアセンブリ
  22. 互換性
    1. 生識別子
  23. 周辺情報
    1. ドキュメンテーション
    2. プレイグラウンド