焼肉のときはビールよりもご飯で乾杯したい派、ムネリンです。
ちなみにScala界隈では糖質制限されている方が多いのであまりご飯、ご飯言ってると白い目でみられるかもしれないでご注意ください。(自分調べ)
皆さん、Scalaの開発、学習しているときに次のようなことにお困りじゃないですか?
私は困ってました。
・Scalaを効率的に勉強したい!皆どうやってるんだろう?
・ちょっとしたプログラムのデバッグ・動作確認でもコンパイル&動作確認がつらい
・でもREPLは使いたくない。IntelliJ IDEA使いたい。
はい、今日からそんなお悩みからは解放されます。
そう、「Scala WorkSheet」ならね!
何がどうなって楽かって?それは見てからのお楽しみ。では早速参ります。

下記がインストールされている前提で話を進めます。
・Typesafe Activator (sbt を含む)
・IntellJ Idea Community Edition
1. activatorを利用してScalaサンプルプロジェクトを作成します。
4. ここではminimal-scalaを選択しています。
$ activator new
Fetching the latest list of templates...
Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-akka-java-seed
2) minimal-akka-scala-seed
3) minimal-java
4) minimal-scala
5) play-java
6) play-scala
(hit tab to see a list of all templates)
> 4
Enter a name for your application (just press enter for 'minimal-scala')
>
OK, application "minimal-scala" is being created using the "minimal-scala" template.
2. IntelliJ IDEA起動 > Openを選択して先ほど作成したProjectフォルダを指定して開きます。

3. 左サイドメニューのProject上で右クリック > New > Scala Worksheetを選択します。
4. Worksheet名を入力します。
ここではStudyScalaにしておきます。これで準備完了です!
5. 早速Scalaを書いていきましょう。
試しにFizuBuzzをScalaで書いてみます。
Worksheet上で確認すると・・・// FizzBuzzを試しにScalaで書いてみる。
fizzBuzz
/**
* FizzBuzz
* 3の倍数で割り切れる場合はFizzを表示
* 5の倍数で割り切れる場合はBuzzを表示
* 3でも5でも割り切れる場合はFizzBuzzを表示
*/
def fizzBuzz: Unit = {
(1 to 100).foreach{
case x if(x % 15 == 0) => println("FizzBuzz")
case x if(x % 3 == 0) => println("Fizz")
case x if(x % 5 == 0) => println("Buzz")
case x => println(x)
}
}
おお!なんと右側に即座に結果が出力されます!便利ですね!
ただ初期設定だと出力結果は35Lineしか表示されないようです。。。
実行途中からoutput exceeds cutoff limit.メッセージが出力されています。
これだと不便なので、設定値を変更しましょう。
IntelliJ > Preferences > Languages & Frameworks > Scala > Worksheetタブを選択
Output cutoff limit, lines を35になっているのでこの数値を引き上げましょう。
ここでは100に引き上げます。
基本の使い方はこんな感じです。
では次に別ファイル「Foo.scala」にオブジェクトを作成して
それをWorksheetから呼び出してみましょう。
package com.example
object Foo {
def say : Unit = {
println("Hello, world!")
Hello.say
}
}
つまらぬソースコードを書いてしまいました。
ではこやつを早速Worksheetから呼びだしてみましょう。
import com.example.Foo
Foo.say
おっと、エラー出てしまいました。
Error:(1, 10) object Hoge is not a member of package com.example追加したファイルを認識していないようです。
;import com.example.Hoge
^
Classファイルが作成されていないことが原因のようなのでBuildしてClassファイルを作成してあげましょう。
Build > Rebuild Project
これで実行できます!
Hello, world
これで明日からあなたもストレスフリー。No Worksheet No Scala Lifeですね。