書籍詳細(独習Rust)

独習Rust 書影

ISBN: 978-4-7981-8931-4

独習Rust

著者WINGSプロジェクト 山内直
監修山田祥寛
出版社翔泳社
価格4,380円(税別)
判型B5変判・1色
ページ数616ページ
発売日2026年6月15日
シリーズ 独習
対象レベル初中級

Rust入門の新たな決定版!

Rustを基礎からきちんと学びたい方におすすめの1冊です。
「解説」「例題」「練習問題」3つのステップで、学習ハードルを少しずつ取り除き、Rustでプログラミングを行う際に必要な知識・概念・機能を体系的かつ網羅的に身につけられるようにしています。
独習Rust ロゴ

更新履歴

  • 正誤訂正:2026年6月21日 更新

目次

  • 第1章 イントロダクション
  • 1.1 Rustの特徴
  • 1.1.1 Rustの登場と成長
  • 1.1.2 高速で優れたメモリ効率
  • 1.1.3 メモリ安全性の確保
  • 1.1.4 優れた並行性
  • 1.1.5 自動テスト機能
  • 1.1.6 モジュールシステムとパッケージマネージャーCargo
  • 1.1.7 エディションとリリースチャネル
  • 1.1.8 マルチパラダイムなプログラミング言語
  • 1.2 Rustプログラムを開発/実行するための基本環境
  • 1.2.1 Windowsにおける環境構築
  • 1.2.2 macOSにおける環境構築
  • 1.2.3 拡張機能のインストール(Windows/macOS共通)
  • 1.2.4 Rustのフォルダーとプログラム
  • 1.3 Rustプログラミングの基本
  • 1.3.1 基本的なプログラムの作成と実行
  • 1.3.2 ビルドと実行のその他の方法
  • 1.4 ソースコードの全体像
  • 1.4.1 文
  • 1.4.2 式
  • 1.4.3 関数
  • 1.4.4 ブロック
  • 1.4.5 名前空間とモジュール
  • 1.4.6 コメント
  • 1.4.7 アイテム
  • 1.5 デバッグの基本
  • 1.5.1 デバッグの構成の作成
  • 1.5.2 ブレークポイントによる停止
  • 1.5.3 ステップ実行
  • この章の理解度チェック
  • 第2章 Rustの基本
  • 2.1 変数
  • 2.1.1 変数の宣言
  • 2.1.2 識別子の命名
  • 2.1.3 よりよい識別子のためのルール
  • 2.1.4 定数
  • 2.1.5 パターン記法
  • 2.1.6 シャドーイング
  • 2.2 データ型
  • 2.2.1 データ型の分類
  • 2.2.2 整数型
  • 2.2.3 浮動小数点型
  • 2.2.4 論理値型
  • 2.2.5 テキスト型(単独文字)
  • 2.2.6 テキスト型(文字列)
  • 2.3 リテラル
  • 2.3.1 整数リテラル
  • 2.3.2 浮動小数点リテラル
  • 2.3.3 文字リテラル
  • 2.3.4 文字列リテラル
  • 2.4 シーケンス型
  • 2.4.1 配列型
  • 2.4.2 タプル型
  • 2.5 型変換
  • 2.5.1 明示的な変換(型強制、キャスト)
  • この章の理解度チェック
  • 第3章 演算子
  • 3.1 算術演算子
  • 3.1.1 算術単項演算子
  • 3.1.2 除算/剰余算とデータ型
  • 3.1.3 桁あふれ(オーバーフロー)
  • 3.1.4 ゼロによる除算
  • 3.1.5 算術演算子のトレイト
  • 3.2 代入演算子
  • 3.2.1 シーケンス型の代入
  • 3.2.2 Copyトレイト
  • 3.2.3 複合代入演算子のトレイト
  • 3.3 比較演算子
  • 3.3.1 同値性と大小の比較
  • 3.3.2 シーケンス型の比較
  • 3.3.3 比較演算子のトレイト
  • 3.4 論理演算子
  • 3.4.1 ビット論理演算子
  • 3.4.2 ビットシフト演算子
  • 3.5 遅延論理演算子
  • 3.5.1 短絡評価
  • 3.6 演算子の優先順位と結合規則
  • 3.6.1 優先順位
  • 3.6.2 結合規則
  • この章の理解度チェック
  • 第4章 制御構文
  • 4.1 条件分岐
  • 4.1.1 if式──単純分岐
  • 4.1.2 if式──多岐分岐
  • 4.1.3 if式──入れ子構造
  • 4.1.4 match式──単純な分岐
  • 4.2 繰り返し処理
  • 4.2.1 while式
  • 4.2.2 for式
  • 4.2.3 loop式
  • 4.3 繰り返しの制御
  • 4.3.1 break式
  • 4.3.2 continue式
  • 4.3.3 繰り返しのネストとbreak式/continue式
  • 4.3.4 ラベル
  • 4.4 パターンマッチング
  • 4.4.1 match式
  • 4.4.2 if let式
  • 4.4.3 while let式
  • 4.4.4 for式
  • 4.4.5 let文
  • 4.4.6 let else文
  • この章の理解度チェック
  • 第5章 関数
  • 5.1 関数の基本
  • 5.1.1 関数定義と呼び出し
  • 5.1.2 関数名
  • 5.1.3 仮引数と実引数
  • 5.1.4 戻り値
  • 5.1.5 修飾子
  • 5.2 関数に関するその他の事項
  • 5.2.1 変数のスコープ
  • 5.2.2 関数からの脱出
  • 5.2.3 const関数
  • 5.2.4 Rustにはない関数機能
  • 5.2.5 再帰関数
  • 5.3 関数ポインター
  • 5.3.1 関数アイテム型
  • 5.3.2 関数ポインター型
  • 5.4 クロージャ
  • 5.4.1 クロージャの基本
  • 5.4.2 キャプチャー
  • この章の理解度チェック
  • 第6章 所有権と借用
  • 6.1 所有権
  • 6.1.1 所有権の基本
  • 6.1.2 所有権とメモリ安全
  • 6.1.3 所有権とトレイト
  • 6.1.4 所有権の明示的な複製
  • 6.1.5 シーケンス型と所有権
  • 6.1.6 関数と所有権
  • 6.2 借用
  • 6.2.1 参照とは
  • 6.2.2 ミュータブルな参照
  • 6.2.3 参照の制約
  • 6.2.4 無効な参照
  • 6.2.5 参照外し
  • 6.3 スライス
  • 6.3.1 ミュータブルなスライス
  • 6.3.2 例 スライスの効用
  • 6.3.3 数列
  • 6.4 クロージャと所有権
  • 6.4.1 キャプチャーがない場合
  • 6.4.2 外部変数をキャプチャーする場合
  • この章の理解度チェック
  • 第7章 ライブラリ
  • 7.1 ライブラリの利用方法
  • 7.1.1 外部クレートの利用
  • 7.2 文字列操作
  • 7.2.1 文字列を消去する
  • 7.2.2 文字列長の長さを取得する
  • 7.2.3 文字列が空であるかを判定する
  • 7.2.4 文字列を検索する
  • 7.2.5 文字列に特定の文字列が含まれるかを判定する
  • 7.2.6 文字列を特定の区切り文字列で分割する
  • 7.2.7 文字列の一部を置換する
  • 7.2.8 文字列を整形する
  • 7.3 正規表現
  • 7.3.1 文字列が正規表現にマッチしたか判定する
  • 7.3.2 正規表現で文字列を検索する
  • 7.3.3 正規表現で文字列をグローバル検索する
  • 7.3.4 キャプチャーグループを取得する
  • 7.3.5 正規表現フラグでマッチング時の挙動を制御する
  • 7.3.6 例 正規表現による検索
  • 7.3.7 正規表現で文字列を置換する
  • 7.3.8 正規表現で文字列を分割する
  • 7.4 日付/時刻
  • 7.4.1 日付/時刻を生成する
  • 7.4.2 年月日、時分秒などの時刻要素を取得する
  • 7.4.3 日付/時刻値を整形する
  • 7.4.4 日付/時刻を加算/減算する
  • 7.4.5 日付/時刻値の差分を取得する
  • 7.5 ファイル入出力
  • 7.5.1 テキストをファイルに書き込む
  • 7.5.2 テキストファイルを読み込む
  • 7.5.3 ファイルモード(OpenOptions構造体)
  • 7.5.4 標準入出力を使う
  • 7.5.5 バイナリファイルの入出力
  • 7.6 ディレクトリ/ファイル操作
  • 7.6.1 パスの基本種類を判定する
  • 7.6.2 パスを分解する
  • 7.6.3 パスを変更する
  • 7.6.4 ディレクトリを作成する
  • 7.6.5 ファイル/ディレクトリを削除する
  • 7.6.6 ファイル/ディレクトリ名を変更する
  • 7.6.7 ファイルをコピーする
  • 7.7 その他のライブラリ
  • 7.7.1 数値計算
  • 7.7.2 ロガー
  • 7.7.3 シリアライズとデシリアライズ
  • 7.7.4 10進数による小数点演算
  • この章の理解度チェック
  • 第8章 コレクション
  • 8.1 コレクションの基本
  • 8.1.1 ジェネリック構文
  • 8.1.2 基本的なコーディング手法
  • 8.2 リスト
  • 8.2.1 Vec(シンプルなリスト)
  • 8.2.2 LinkedList(連結リスト)
  • 8.3 マップ
  • 8.3.1 HashMap(ハッシュマップ)
  • 8.3.2 BTreeMap(ソート済みマップ)
  • 8.4 セット
  • 8.4.1 HashSet(ハッシュセット)
  • 8.4.2 BTreeSet(ソート済みセット)
  • 8.5 キュー
  • 8.5.1 VecDeque(両端キュー)
  • 8.5.2 BinaryHeap(優先度付きキュー)
  • 8.6 イテレータ
  • 8.6.1 基本的な操作
  • 8.6.2 イテレータ内の検索
  • 8.6.3 新たなイテレータの生成
  • 8.6.4 新たなコレクションの生成
  • この章の理解度チェック
  • 第9章 構造体とトレイト
  • 9.1 構造体
  • 9.1.1 構造体の定義
  • 9.1.2 構造体のインスタンス化
  • 9.1.3 フィールドへのアクセス
  • 9.1.4 関連関数(メソッド)
  • 9.1.5 特殊な構造体
  • 9.2 ジェネリクス
  • 9.2.1 ジェネリック型の定義
  • 9.2.2 メソッドの実装
  • 9.2.3 型パラメーターの既定値
  • 9.3 トレイト
  • 9.3.1 トレイトの定義
  • 9.3.2 トレイトの実装
  • 9.3.3 トレイト境界
  • 9.3.4 トレイトを使う関数
  • 9.3.5 関連型
  • 9.3.6 トレイトの継承
  • 9.3.7 derive属性
  • 9.4 列挙体
  • 9.4.1 列挙体の定義
  • 9.4.2 列挙体のインスタンス化
  • 9.4.3 列挙子の内部値
  • 9.4.4 タグ付き共用体
  • 9.4.5 メソッドの実装
  • 9.4.6 derive属性
  • この章の理解度チェック
  • 第10章 スマートポインター
  • 10.1 ボックス(Box<T>構造体)
  • 10.1.1 スカラー型とボックス
  • 10.1.2 配列とボックス
  • 10.1.3 構造体/列挙体とボックス
  • 10.1.4 参照外しと解放
  • 10.2 参照カウンター付きボックス(Rc<T>)
  • 10.2.1 参照カウンター付きボックス
  • 10.2.2 参照カウンターの確認
  • 10.2.3 可変なボックスは不可
  • 10.3 不変オブジェクトを可変のように扱うスマートポインター(Cell<T>/RefCell<T>構造体)
  • 10.3.1 内部可変性パターン
  • 10.3.2 Cell<T>構造体
  • 10.3.3 RefCell<T>構造体
  • この章の理解度チェック
  • 第11章 エラー処理
  • 11.1 回復不能なエラー処理
  • 11.1.1 Panicによるプログラムの終了
  • 11.1.2 unwrapメソッド
  • 11.1.3 panic!マクロ
  • 11.1.4 バックトレース
  • 11.2 回復可能なエラー処理
  • 11.2.1 Result列挙体
  • 11.2.2 Result列挙体のメソッド
  • 11.2.3 エラーの委譲
  • 11.2.4 ?演算子によるエラーの委譲
  • この章の理解度チェック
  • 第12章 モジュールシステム
  • 12.1 パッケージとクレート
  • 12.1.1 パッケージ
  • 12.1.2 クレート
  • 12.2 モジュール
  • 12.2.1 モジュールの定義
  • 12.2.2 パス式
  • 12.2.3 アクセス制御
  • 12.2.4 別ファイルへの切り離し
  • 12.3 ワークスペース
  • 12.3.1 ワークスペースの構築
  • 12.3.2 モジュールの関数呼び出し
  • 12.3.3 ワークスペースの設定
  • この章の理解度チェック
  • 第13章 テスト
  • 13.1 単体テスト
  • 13.1.1 テスト構文
  • 13.1.2 テストの実行
  • 13.1.3 標準出力の利用
  • 13.1.4 アサーションマクロ
  • 13.1.5 should_panic属性
  • 13.1.6 Result型を返すテスト関数
  • 13.2 結合テスト
  • 13.2.1 testsフォルダー
  • 13.2.2 結合テストの実行
  • 13.3 ドックテスト
  • この章の理解度チェック
  • 第14章 マクロ
  • 14.1 宣言的マクロ
  • 14.1.1 宣言的マクロの定義
  • 14.1.2 マクロ呼び出しの展開
  • 14.1.3 マクロの衛生性
  • 14.2 手続き的マクロ
  • 14.2.1 手続き的マクロのパッケージ構成
  • 14.2.2 関数風マクロ
  • 14.2.3 deriveマクロ
  • 14.2.4 属性風マクロ
  • この章の理解度チェック
  • 第15章 高度なプログラミング
  • 15.1 マルチスレッド処理
  • 15.1.1 並列処理と非同期処理
  • 15.1.2 スレッドの作成/実行
  • 15.1.3 スレッド間のデータ共有
  • 15.1.4 スレッド間の通信
  • 15.2 async/await
  • 15.2.1 非同期ランタイム
  • 15.2.2 非同期関数とタスク
  • 15.2.3 非同期関数の利用例
  • 15.3 属性
  • 15.3.1 属性の記述位置
  • 15.3.2 属性の構文
  • 15.3.3 組み込み属性
  • 15.4 ライフタイム
  • 15.4.1 参照とライフタイム
  • 15.4.2 ライフタイム注釈
  • 15.4.3 静的ライフタイム
  • この章の理解度チェック
  • コラム
  • その他の開発環
  • データとメモリ領域
  • ドキュメントの作成
  • プロファイル

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.IV サンプルファイルについて /chap07 の配下 -
/lib-fileio が2つある 正しくは1つです 2026/06/21 New

FAQ

現在、FAQはありません。

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』