sbtでScala 3(Dotty)を使用する

Scala 3.3.1
最終更新:2020年9月19日

[AD] scalapediaでは記事作成ボランティアを募集しています

この記事では、sbtを使ってScala 3(Dotty)を使う方法をご紹介します。

Scala 3はまだ正式リリース前です

Scala 3はDottyと呼ばれています。
DottyはScalaの次期バージョンのプロトタイプとしてのコードネームです。

公式サイトはこちらです。

外部リンク:Dotty official website

Scala 3を今使うメリットとデメリット

Scala 3はまだ正式リリース前ですので、使用するのはメリットだけでなく、デメリットもあります。

Dottyを使用するメリットは、Scala 3の新機能の恩恵にいち早くあずかることができることです。

また、デメリットを挙げると以下のようになります。

  • バグが含まれうる
  • アップデートが早い
  • アップデートによって非互換な変更が入りうる
  • 関連ライブラリが追従していないことが多い

これらをそれぞれ踏まえた上で使用しましょう。

Scala 3を使用するための準備をする

以下の手順はマイルストーン版リリース前の手順です。

マイルストーン版以降では手順が異なる可能性があります。注意してください。

マイルストーン版について詳しくは以下の記事をご覧ください。

sbt-dottyプラグインを使用する

既存のプロジェクトでDottyを使用するには、プロジェクトにsbt-dottyプラグインを追加します。

project/plugins.sbtに以下の一行を追加します。

sbt
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.4.1")

sbt-dottyプラグインの最新版は、以下のリンク先より確認してください。

使用するScalaのバージョンとしてDottyを指定する

build.sbt内でDottyのバージョンを指定してみましょう。

記事執筆時点での最新版は0.24.0-RC1ですが、現段階でScalaTestは0.23.0-RC1までにしか対応していません。

したがってここでは0.23.0-RC1を使用することとします。

sbt
scalaVersion := "0.23.0-RC1"

これによって、プロジェクト内でScala 3を使用することができるようになります。

動作確認してみる

Scala 3で追加された機能を使用している例がすでにありますので、動作確認については以下の記事を参考にしてください。

以下のような合併型(Union Type)を引数にとるメソッドです。

def message(arg: Int | String) = s"Hello! world $arg"

サイト内検索