このページは Scala 2と Scala 3の両方に対応しています。
インストールなしで今すぐ Scala を試す!
Scala を今すぐ試すにはブラウザで「Scastie」を使います。 Scastieは Scala のサンプルコードがどのように動作するかをブラウザで簡単に試すことができるオンライン「playground」で、様々なバージョンのコンパイラと公開されているライブラリが利用できます。
Scastie は Scala 2と Scala 3の両方をサポートしていますが、デフォルトでは Scala 3になっています。Scala 2のスニペットをお探しの方は、こちらをご覧ください。
コンピューターに Scala をインストールする
Scala をインストールすると、コンパイラやビルドツールなどの様々なコマンドラインツールが同時にインストールされます。 私たちは必須ツール全てを確実にインストールするために「Coursier」の使用をお勧めしますが、それらを手動でインストールすることもできます。
Scala インストーラーを使う(推奨)
Scala のインストーラーはCoursierというツールで、コマンドはcs
です。このツールを使うと、JVM と標準 Scala ツールがシステムにインストールされます。
以下の手順でお使いのシステムにインストールしてください。
cs setup
は JVM の管理だけでなく、便利なコマンドラインツールもインストールします:
- JDK (インストール済みでなければ)
- sbt ビルドツール
- Ammonite, 強化された REPL
- scalafmt, コードフォーマッター
scalac
(Scala 2 コンパイラー)scala
(Scala 2 の REPL と script runner).
cs
の詳細については、ccoursier-cliのドキュメントをご覧ください。
現在
cs setup
は Scala 2 のコンパイラとランナー(それぞれscalac
とscala
コマンド)をインストールします。ほとんどのプロジェクトでは Scala 2 と Scala 3 の両方に対応したビルドツールを使用しているので、通常は問題になりません。しかし、以下の追加コマンドを実行することで、Scala 3のコンパイラとランナーをコマンドラインツールとしてインストールすることができます。$ cs install scala3-compiler $ cs install scala3
手動でのインストール
Scala プロジェクトのコンパイル、実行、テスト、パッケージ化に必要なツールは Java と sbt の2つだけです。 Java のバージョンは8または11です。 これらを手動でインストールするには:
- Java 8または11がインストールされていない場合は、Oracle Java 8、Oracle Java 11、またはAdoptOpenJDK 8/11からJavaをダウンロードしてください。Scala と Java の互換性の詳細については、JDK Compatibilityを参照してください。
- sbtをインストールしてください。
sbt で「Hello World」プロジェクトを作成する
sbt をインストールしたら、次のセクションで説明する Scala プロジェクトを作成する準備ができました。
プロジェクトの作成には、コマンドラインまたはIDEを使用します。コマンドラインに慣れている方は、その方法をお勧めします。
コマンドラインを使う
sbt は、Scala のビルドツールです。sbt は、Scala のコードをコンパイルし、実行し、テストします。(sbt は、Scala コードのコンパイル、実行、テストを行います(ライブラリの公開やその他多くのタスクも可能です)。
sbt で新しい Scala プロジェクトを作成するには、以下の手順で行います:
- 空のディレクトリに
cd
する. - Scala 3プロジェクトを作成する場合は
sbt new scala/scala3.g8
、Scala 2プロジェクトを作成する場合はsbt new scala/hello-world.g8
というコマンドを実行します。これは、GitHub からプロジェクトのテンプレートを引き出します。このとき”target”という名前のディレクトリが作成されますが無視してください。 - プロンプトが表示されたら、アプリケーションの名前を
hello-world
とします。これにより、”hello-world “というプロジェクトが作成されます。 - それでは、生成されたばかりのものを見てみましょう:
- hello-world
- project (sbt が利用するファイル)
- build.properties
- build.sbt (sbt のビルド定義)
- src
- main
- scala (あなたの Scala のコードはすべてここに入る)
- Main.scala (プログラムのエントリーポイント) <-- 今、必要なのはこれだけです
sbt についての詳しいドキュメントは、Scala Book(Scala 2バージョンはこちら)と、sbt の公式ドキュメントに掲載されています。
IDEを使う
このページの残りの部分を読み飛ばして、Building a Scala Project with IntelliJ and sbtに進んでも問題ありません。
hello-world プロジェクトを開く
IDE を使ってプロジェクトを開いてみましょう。最もポピュラーなものは IntelliJ と VSCode です。どちらも豊富な IDE 機能を備えていますが、他にも多くのエディタを使うことができます。
IntelliJ を使う
- IntelliJ Community Editionをダウンロードしてインストールします。
- IntelliJ プラグインのインストール方法にしたがって、Scala プラグインをインストールします。
build.sbt
ファイルを開き、Open as a projectを選択します。
VSCode で metals を使う
- VSCodeをダウンロードする
- Marketplaceから Metals extension をインストールする
- 次に、build.sbt ファイルがあるディレクトリを開きます(前の指示に従った場合は、hello-world というディレクトリになるはずです)。プロンプトが表示されたら、「Import build」を選択します。
Metals は、VS Codeや Atom、Sublime Textなどのエディタで Scala のコードを書くためのサポートを提供する「Scala 言語サーバ」であり、Language Server Protocol を使用しています。 MetalsはバックグラウンドでBSP(Build Server Protocol)を使用してビルドツールと通信します。Metalsの仕組みについては、「Write Scala in VS Code, Vim, Emacs, Atom and Sublime Text with Metals」を参照してください。
ソースコードをいじってみよう
この2つのファイルを IDE で表示します:
- build.sbt
- src/main/scala/Main.scala
次のステップでプロジェクトを実行すると、 src/main/scala/Main.scala のコードを実行するために、 build.sbt の設定が使われます。
Hello World の実行
IDE の使用に慣れている場合は、IDE から Main.scala のコードを実行することができます。
または、以下の手順でターミナルからアプリケーションを実行できます:
hello-world
ディレクトリにcd
するsbt
コマンドを実行し、sbt console を開く~run
と打ち込む。~
は全てのコマンドの前に追加できるコマンドで、ファイル保存を検知してコマンドを再実行してくれるため、編集・実行・デバッグのサイクルを高速に行うことができます。sbt はここでもtarget
ディレクトリを生成しますが無視してください。
このプロジェクトのrun
を止めたければ、[Enter]
を押してrun
コマンドを中断します。その後exit
と入力するか[Ctrl+D]
を押すと sbt が終了し、コマンドラインプロンプトに戻ります。
次のステップ
上記のチュートリアルの後は以下の教材に進んでください。
- The Scala Book (Scala 2版はこちら)はScalaの主な機能を紹介する短いレッスンのセットを提供します。
- The Tour of Scala Scalaの機能を一口サイズで紹介します。
- Learning Resources オンラインのインタラクティブなチュートリアルやコースです。
- books 人気のある Scalaの 書籍を紹介します
- The migration guide 既存の Scala 2コードベースを Scala 3に移行する際に役立ちます。
ヘルプが必要な人は
他の Scala ユーザーとすぐに連絡を取りたい場合は、多くのメーリングリストやリアルタイムのチャットルームがあります。これらのリソースのリストや、どこに問い合わせればよいかについては、コミュニティページをご覧ください。
(日本語のみ追記)
Scala について日本語で質問したい場合、Twitterでつぶやくと気づいた人が教えてくれます。