目次
第1章 Scalaひとめぐり
- Scalaの誕生とこれまで
- なぜScalaか?
- ScalaはJVM上で動作する言語
- 著名なユーザ企業
- 開発環境
- はじめてのScalaプログラミング
- Scaladocの読み方
- ビルドツールの利用
第2章 Scalaの基礎
- 基本的な型
- クラスを定義する
- トレイトを定義する
- Scalaにおけるstatic
- 特別なメソッド名
- ケースクラス ―― メソッドを自動生成する
- 制御構文
- 修飾子
- ジェネリクスと型パラメータ
- 名前空間とモジュール分割
- 無名クラス
- 暗黙の型変換
- 暗黙クラス ―― 既存のクラスにメソッドを付け足す
- 暗黙のパラメータ
第3章 Option/Either/Tryによるエラー処理
- Option ―― 「値がないかもしれない」を表す
- Either ―― 失敗した理由を示す
- Try ―― Option/Eitherと同じ感覚で例外を扱う
第4章 コレクション
- コレクションのデータ型
- コレクションを操作するAPI
- コレクションの実装ごとの性能特性
- Java標準クラスとScala標準クラスの変換
- for式によるコレクション操作
第5章 並行プログラミング
- 並行プログラミングのメリットとデメリット
- Futureの基本的な使い方
- Futureを扱うためのAPI
第6章 Scalaプロジェクトのビルド
- sbtの役割
- はじめてのsbt
- build.sbtの書き方
- sbtシェルのコマンド
- ビルドのスコープ
- sbtプラグイン
- sbtのトラブルシューティング
第7章 ユニットテスト
- テストの重要性
- Scalaにおけるユニットテスト
- Scalaで使えるテストフレームワーク
- ScalaTestを使ったはじめてのテスト
- ScalaTestを使いこなす
- Mockitoを使ったモックテスト
- ScalaCheckを使ったプロパティベーステスト
第8章 知っておきたい応用的な構文
- コンパニオンオブジェクト ―― 同名のクラスへの特権的なアクセス権を持つオブジェクト
- 部分関数 ―― 呼び出し前の引数チェック
- デフォルト引数 ―― 引数を省略したときの既定値を指定する
- 名前付き引数 ―― メソッドの引数に名前をつけて呼び出せるようにする
- 値クラス ―― オブジェクト生成のオーバーヘッドを避ける
- 型メンバ ―― クラスやトレイト内だけで有効な型の別名を付ける
- 自分型アノテーション ―― トレイトやクラスに継承でない依存関係をもたせる
- メソッド引数におけるブロック式 ―― メソッド呼び出しをより簡潔に記述する
- 複数の引数リストを持つメソッド ―― 部分適用を容易にする
- η-expansion ―― メソッドを関数に変換する
- 名前渡し引数 ―― 引数の評価タイミングを制御する
- 抽出子 ―― 独自のパターンを定義する
- implicitの探索範囲
- 特殊なメソッド
第9章 よりよいコーディングを目指して
- 可能な限り不変にする
- 式指向なスタイルで書く
- そのほかのTips