スクリプトのように実行する
scalacして実行というのはけっこう手間がかかります。
REPLも起動してから逐一コードを評価していかなければなりません。
そこで、ファイルにプログラムを書いて保存したらそのまま実行できるようにします。
ただ練習するだけなら
$ scala test.scala
でも良いわけですが、あくまでスクリプトっぽく、たとえば/usr/local/binに置いたりする場合などに使えます。
- 自身をscalaファイルとしてscalaコマンドに渡すスクリプト
#!/bin/sh exec scala -deprecation ${0} $@ # exec scala -deprecation `cygpath -w ${0}` $@ # Cygwinの場合 !# def add(a: Int, b: Int): Int = a + b def getArgAsInt(i: Int): Int = args(i).toInt val (n1, n2) = (getArgAsInt(0), getArgAsInt(1)) printf("N1 = %d, N2 = %d, N1 + N2 = %d%n", n1, n2, add(n1, n2)) val a = List(5, 4, 2, 12, 8) println(a sortWith (_ > _)) println(a sortWith (_ < _))
- 実行結果(Cygwin)
$ chmod a+x test.scala ; ll *.scala ---x--x--x+ 1 argius None 327 4月 26 22:22 test.scala $ time ./test.scala 3 2 N1 = 3, N2 = 2, N1 + N2 = 5 List(12, 8, 5, 4, 2) List(2, 4, 5, 8, 12) real 0m8.507s user 0m0.568s sys 0m2.237s $