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
