Ammonite
- Ammonite-REPLを使う (27 Oct 2016 | Tags:
Ammonite-REPLを使う Ammonite-REPLを使う
Ammonite projectなるものがあるらしい。 その中の、Ammonite-REPLはリッチなREPLが使える代物らしいので、試してみた。
Install
sudo curl -L -o /usr/local/bin/amm https://git.io/vP4Gw && chmod +x /usr/local/bin/amm && amm
Hello World!
早速
amm
を起動してみる。> amm Loading... Welcome to the Ammonite Repl 0.7.8 (Scala 2.11.8 Java 1.8.0_20) @ println("Hello World!") Hello World!
ファイルに記述して実行してみる。
> echo println\(\"Hello World\!\"\) > Hello.sc > amm Hello.sc Hello World!
便利っぽいあれこれ
シェルスクリプトっぽく使う
さっきの
Hello.sc
の先頭に、1行追加する。#!/usr/bin/env amm println("Hello World!")
これでファイルを直接実行できる。
> ./Hello.sc Compiling Hello.sc Hello World!
ファイルをインポートする
val message = "Hello World"
import $file.Bar println(Bar.message)
> amm Foo.sc Compiling Foo.sc Compiling Bar.sc Hello World
これで、
Foo
で、Bar
で定義されたフィールドやメソッドにアクセスできる。sugoi!
ただし、デフォルトではローカルのスコープに展開してくれないので、
Bar.message
みたいな感じになる。Foo
でもmessage
でアクセスしたい場合は、↓のように明示する必要がある。import $file.Bar impor Bar.message println(message)
import $file.Bar.message
のように1行ではいけないので注意。1行で書くなら、import $file.Bar, Bar.message
ワイルドカードでインポート
いちいち明示するのが面倒なら、ワイルドカードが使える。
import $file.Bar, Bar._ println(message)
ライブラリをインポートする
import $ivy.`com.typesafe.play::play-json:2.4.6`, play.api.libs.json.Json val json = Json.toJson(Map("hello" -> "world")) println(json)
> amm ToJson.sc Compiling ToJson.sc {"hello":"world"}
play-jsonが使えた sugoi!!
LinkLatest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型
Recent Books:
Jekyll::Drops::SiteDrop