ガイドと概要
標準ライブラリ
Scala 標準ライブラリをカバーするガイドと概要
Scala のコレクションライブラリ
Contentsこのページは Scala 2.13 へ移行するコレクションユーザーにとっての主な変更を説明し、Scala 2.11、2.12、2.13 向けにクロスビルドする方法をお見せする。
このページは Scala 2.13 で導入されたコレクションフレームワークのアーキテクチャーを説明する。コレクション API というよりはフレームワークの内部の動きがもっと分かるだろう。
このドキュメントでは、コレクションフレームワークがどのようにして数行のコードであなた自身が独自コレクションを定義でき、しかもフレームワークの圧倒的な量の機能を再利用できる助けをしているかを学べるだろう。
このガイドでは、どのようなコレクション型にも適用できて元のコレクション型を返すことができる操作の書き方、さらに組み立てるコレクション型によってパラメータ化された操作の書き方もお見せする。
言語
Scala 言語の機能をカバーするガイドと概要
Scala 3 との互換性と移行について知っておくべきことすべて
Scala 3 のマクロの書き方に関係する全ての機能をカバーする詳しいチュートリアル
値クラスは Scala で実行時のオブジェクトアロケーションを避ける新しい仕組みだ。これは新しい AnyVal サブクラスを定義することで達成できる。
Scala のエンドユーザー向けの TASTy のフォーマットの概要
Scala 2.10 は暗黙クラス(implicit class)と呼ばれる新しい機能を導入した。暗黙クラスは implicit キーワードでマークされたクラスだ。このキーワードはそのクラスがスコープ内にあるとき、そのプライマリコンストラクターが暗黙変換に利用可能にする。
ライブラリの作成
Scala エコシステム向けのオープンソースライブラリの貢献方法のガイド
ライブラリ作者がライブラリを公開したりドキュメントしたりするのにセットアップすべき全ツールをリストにする。
並列並行プログラミング
並列並行プログラミングのための Scala のライブラリをカバーする完全ガイド
Futures は多くの処理を並列で、効率的かつノンブロッキングに実行する考え方を提供する。Future はまだ存在しない値のプレースホルダーオブジェクトだ。一般に Future の値は並行で供給され、その後で使うことができる。このようなやり方で並行タスクを組み立てると、高速、ノンブロッキングで並列なコードにつなげるのに役立つ。
Scala の並行コレクションライブラリ
Contents互換性
何が何と動くか動かないか
どの Scala バージョンがどの JDK バージョンで動くか
Scala の2つのバージョンがバイナリ互換であるとき、一方の Scala バージョンでプロジェクトをコンパイルし、実行時にもう一方の Scala バージョンにリンクするのは安全だ。安全な実行時リンクとは、同じバージョンの Scala でコンパイルや実行するときでは起こり得ないだろう複雑なシナリオでプログラムを実行しても、JVM が LinkageError(かそのサブクラス)を発生させないということ(のみ!)を意味する。具体的には、バイナリ互換である限り、コンパイル時とは異なる Scala バージョンの外部依存関係を実行時クラスパスに持つことができるということだ。言い換えると、異なるバイナリ互換バージョンでの分離コンパイルは、すべて Scala の同じバージョンでコンパイルも実行もすることと同様、問題ない。
多種多様なライブラリは生産性の高いソフトウェアエコシステムにとって重要だ。Scala ライブラリを開発・頒布するのはたやすいが、良いライブラリ作者はコードを書いて公開する以上のことをする。このガイドではライブラリのバイナリ互換という重要なトピックをカバーする。
ツール
Scala REPL や Scaladoc 生成のようなコアの Scala ツールの参考資料
Scala REPL は Scala の式を評価するツール(scala
)だ。
scala
コマンドはソーススクリプトをテンプレートでラップし、コンパイルし、できあがったプログラムを実行することで実行する。
Scala の API ドキュメント生成ツール
Contentsコンパイラー
Scala コンパイラーをカバーするガイドと概要。コンパイラプラグイン、リフレクション、マクロのようなメタプログラミング。
Scala の実行時/コンパイル時のリフレクションフレームワーク。
ContentsScala のメタプログラミングフレームワーク
Contentsコンパイラープラグインは Scala コンパイラーのカスタマイズと拡張を可能にする。このチュートリアルはプラグインの仕組みを説明し、かんたんなプラグインの作成をウォークスルーする。
scalac
がどのようにコードをコンパイルするかの様々な設定。
レガシー
最近の Scala バージョン(2.12以上)には関係なくなった機能をカバーするガイド。
Scala's Collection Library.
Contentsこれらのページは Scala コレクションフレームワークのアーキテクチャを詳細に説明する。コレクション API というよりはフレームワークの内部の動きがもっとよく分かるだろう。また、コレクションフレームワークがどのようにして数行のコードであなた自身が独自コレクションを定義でき、しかもフレームワークの圧倒的な量の機能を再利用できる助けをしているかを学べるだろう。