動かして学ぶ!Rust入門

書籍情報

発売日 : 2023年04月24日

著者/編集 : mebiusbox

出版社 : 翔泳社

発行形態 : 単行本

書籍説明

内容紹介

Rustのプログラミング手法について、サンプルを元に手を動かしながら学ぶ書籍です。主に以下の3つについて丁寧に解説します。Rustの概要と開発環境。Rustの基本的な文法と機能。Rustによる簡単なアプリ開発。基本的な文法について丁寧に解説。Rustの機能を学ぶのに適したサンプルを用意。学習をもっと深めたい方に向けて「メモ」や「参照」で補足。

目次

Chapter 1 Rust
01 概要
  Rustの特徴
  Rustの誕生
  Rustはどういうプログラミング言語なのかエディション
02 互換性
03 まとめ

Chapter 2 環境構築
01 Rustをインストールする前の準備
  PowerShellのバージョンを確認
  wingetのインストール
  最新のPowerShellをインストール
  Windows Terminal
  Git
  Anaconda(Miniconda)
02 Rustのインストール
  rustup
  cargo
  rustc
03 Visual Studio Code
  スニペット
04 rust-analyzer
05 Rust Playground
06 Hello, World!
  パッケージの作成
  Rustプログラムの実行環境
07 その他のツール
  Terminal-Icons
  Oh My Posh
  winget
  PowerShellのエイリアス
  bat
  lsd(LSDeluxe)
  delta
  simple-http-server
  cargo-make
08 まとめ
  本章で学んだこと

Chapter 3 Rustの文法と機能
01 基本
  コメント(Comment)
  式と文(Expression and statement)
  ブロック(Block)
  オブジェクト(Object)
  組み込みデータ型 (Primitive Type)
  型の別名(Alias)
  所有権(Ownership)
  関数(Function)
  print!マクロ
  束縛(Binding)
  シャドーイング(Shadowing)
  定数(Const)
  参照(Reference)
  可変性(Mutable and immutable)
  文字列(String)
  スタティック変数
  命名規則
  参照外し(Dereference)
  参照と可変性の関係
  借用チェック(Borrow Checker)
02 コピートレイト(Copy Trait)
03 構造体・列挙型
  構造体(Struct)
  列挙型(Enum)
04 クロージャ(Closure)
  Fnとfn
05 制御構文
  if式(else、else if)
  loop式
  while式
  for式
06 数列・スライス
  数列(Range)
  スライス(Slice)
07 ジェネリクス(Generics)
  Option型
08 パターンマッチング(Pattern
  match式
  マッチガード(Match Guard)
  パターンによる束縛
  if let式
09 エラー処理(Error
  panic!マクロ
  Result型
  unwrapメソッド
  expectメソッド
  エラー伝搬(Error Propagation)
  コンビネータ
10 RAII
  Derefトレイト
  Dropトレイト
  3つのメモリ領域(データ、スタック、ヒープ)
  Box型
  Rc型
11 ライフタイム(Lifetime)
  staticライフタイム
12 トレイト(Trait)
  トレイトとは
  継承
  derive属性
  Fromトレイト
  マーカートレイト(Marker)
  Sizedトレイト
13 動的ディスパッチ
  トレイトオブジェクト
  dyn Trait型、impl Trait型
14 内部可変性(Interior
  Cell型
  RefCell型
  Weak型
15 並列処理
  スレッド
  Send・Syncトレイト
  Arc型
  RwLock型
16 所有権
17 所有型と参照型
18 Cow型(Clone-on-write)
19 イテレータ(Iterator)
  アダプタ
20 コレクション(Collection)
  Vec型
  String型
  HashMap型
  イテレータからコレクションに変換
  イテレータを返すメソッド
21 Cargo
  パッケージ、クレート
  ターゲット
  TOML形式
  cargo initコマンド
  cargo buildコマンド
  cargo cleanコマンド
  cargo runコマンド
  cargo checkコマンド
  cargo treeコマンド
  cargo install[uninstall]コマンド
  cargo searchコマンド
  cargo publishコマンド
  デバッグビルド、リリースビルド
  外部パッケージ
  ワークスペース
  Cargo.toml
22 モジュール(Module)
  モジュールの定義
  パス(Path)
  モジュールの利用(use)
  モジュールツリー
  モジュールの再公開
23 テスト(Unit
  cargo testコマンド
  assertion
  should_panic属性
  testsターゲット
24 ドキュメントコメント
  ドキュメントコメントの書き方
  cargo docコマンド
  rustup docコマンド
25 フォーマッタ(rustfmt)
26 リンター(clippy)
27 マクロ(Macro)
  宣言的マクロ
  手続きマクロ
28 非同期処理
  Future型
  async/.await
  tokioクレート
29 unsafe
30 Tips
  Defaultトレイト
  分解束縛
  デバッグ時やテスト時のみ有効なコード
  属性
  演算子のオーバーロード
  Preludeモジュール
  DisplayトレイトとDebugトレイト
  特殊なマクロ
  Nightly版
  cargo-audit、cargo-outdated
31 まとめ
  本章で学んだこと

Chapter 4  アプリケーションの開発
01 単語推理ゲーム
  サンプルコードについて
  プロジェクトの準備
  単語辞書の読み込み
  ゲーム構造体
  推理ロジックの実装
  GUIの実装(icedクレート)
02 レイトレーシング
  サンプルコードについて
  プロジェクトの準備
  画像の出力
  ベクトル
  クォータニオン
  基本的な構造体の実装
  カメラ
  球体の追加
  球体の法線
  確認用のウィンドウ
  モジュール化
  複数の物体への対応
  アンチエイリアシング
  拡散反射
  材質
  鏡面反射
  屈折
  大量に表示してみよう
  テクスチャ
  画像テクスチャ
  発光
  四角形
  コーネルボックス
  光学のおはなし
  モンテカルロレイトレーシング
03 まとめ
  本章で学んだこと

Appendix
01 std::option::Option型
02 std::result::Result型
03 std::vec::Vec型
04 std::string::String型
05 std::collections::HashMap型
06 std::iter::Iteratorトレイト
  アダプタ
07 std::f64モジュール
  定数
  数学関数(std::f64モジュール)
08 Rustをビルドしてみよう

著者情報

mebiusbox