ようこそツアーへ
このツアーはScalaで最もよく使う機能を一口サイズで紹介をしています。 これらはScala初心者を対象としています。
これはほんの短いツアーで、完全な言語のチュートリアルではありません。 もしそれを望むなら、こちらの本 を手に入れるか、 その他の解決手段 での相談を検討してください。
Scalaとは?
Scalaは一般的なプログラミング方法を簡潔かつエレガントかつ型安全な方法で表現するために設計されたモダンなマルチパラダイム言語です。 それはオブジェクト指向言語と関数型言語の機能をスムーズに統合しています。
Scalaはオブジェクト指向
Scalaは全ての値がオブジェクトである という意味では純粋オブジェクト指向言語です。 型とオブジェクトの振る舞いはクラス とトレイト によって記述されます。 クラスはサブクラス化と、多重継承を巧みに置き換える柔軟なミックスインを基にした合成 機構により拡張されます。
Scalaは関数型
Scalaはすべての関数が値である という意味で関数型言語でもあります。
Scalaは無名関数を定義するために軽量な構文を提供し、
高階関数 をサポートし、関数はネストしても良く、カリー化 をサポートします。
Scalaのケースクラスにはパターンマッチングが組み込まれていることにより、多くの関数型プログラミング言語で使われる代数型を作ることができます。
シングルトンオブジェクト はクラスのメンバーではない関数をグループ化する便利な方法を提供します。
さらに、Scalaのパターンマッチングの概念は、抽出子オブジェクト による一般的な拡張として、右無視シーケンスパターンの働きにより、自然にXMLデータの処理 にまで拡張されています。
(訳者註:現在のバージョンでは右無視シーケンスパターンの説明は正規表現のページから除かれています。→古いバージョン)
この文脈では、For内包表記はクエリの設計に役立ちます。
これらの機能により、ScalaはWebサービスのようなアプリケーション開発に理想的なものとなっています。
Scalaは静的型付け
Scalaは抽象化が安全で首尾一貫した方法で使われることをコンパイル時に強制する、表現力豊かな型システムを備えています。 特にその型システムは以下をサポートします:
- ジェネリッククラス
- 変位指定アノテーション
- 上限 と 下限 型境界
- 内部クラス とオブジェクトメンバーとしての抽象型メンバー
- 複合型
- 明示的に型指定された自己参照
- 暗黙パラメーター と 暗黙の変換
- ポリモーフィックメソッド
型推論 は、ユーザーがコードに冗長な型情報の注釈をつける必要はないことを意味します。 これらの機能を組み合わせることにより、プログラミングの抽象化を安全に再利用でき、ソフトウェアを型安全に拡張できる強力な基盤となります。
Scalaは拡張可能
実際問題として、ドメイン固有のアプリケーションの開発ではよくドメイン固有の言語拡張が必要となります。 Scalaは言語メカニズムのユニークな組み合わせを提供します。それにより、新しい言語構成要素をライブラリという形で円滑に追加することを簡単にします。
多くのケースで、これはマクロのようなメタプログラミングの機能を使わずに実現できます。例えば、
Scalaの相互運用
Scalaは一般的なJava実行環境 (JRE) と相互運用するように設計されています。 特に、主流であるオブジェクト指向のJavaプログラミング言語とのやり取りはできるだけスムーズになっています。 ScalaではSAMs、ラムダ 、アノテーション 、ジェネリクス のようなJavaの新しい機能には直接の類似物があります。
デフォルト引数 、名前付きパラメータ といった、Javaに類似物がないScalaの機能はできるだけ適切でJavaに近い形にコンパイルされます。 ScalaはJavaのような同じコンパイルモデル(分割コンパイル、動的クラス読み込み) を持っており、数千の既存の高品質なライブラリにアクセスができます。
ツアーを楽しんで!
もっと読むには、目次メニューの次のページ に進んでください。