Scalaを実行する色々な(といっても2種類だけど)方法。
シェバン行指定については調べてません。
(適当なディレクトリ1)/run_by_script.scala:
args.foreach(println)
実行:(適当なディレクトリ2)に移動してscalaコマンドでファイル名指定。
> scala (適当なディレクトリ1)/run_by_script.scala abc def abc def
ポイント:
(適当なディレクトリ1)/hello.scala:
class c1 class c2 object main { def main(args:Array[String]) { for (i <- 0 to args.length - 1) println("args(" + i + ") = " + args(i)) } }
"適当なディレクトリ2"に移動してコンパイル
> scalac (適当なディレクトリ1)/hello.scala
→ "適当なディレクトリ2" の下にクラスファイル(.class)が生成される。("-d" で出力先ディレクトリを指定できます。)
"適当なディレクトリ2"に移動してコンパイルしたクラスファイルを実行
> scala main abc def args(0) = abc args(1) = def
ポイント:
こういう機能はない・・・多分。
foo.scala: ... import "abc/sub1.scala" ...
(適当なディレクトリ1)/package1.scala:
package foo { class c1 } package foo.bar { class c2 } package foo.bar.baz { object main { def main(args:Array[String]) { args.foreach(println) } } }
"適当なディレクトリ2"に移動してコンパイル
> scalac (適当なディレクトリ1)/package1.scala
→ "適当なディレクトリ2"の下に以下の構成でclassファイルが生成される。
foo/c1.class foo/bar/c2.class foo/bar/baz/main.class, main$.class, ...
"適当なディレクトリ2"の外からコンパイルしたクラスファイルを実行
> scala -cp 適当なディレクトリ2 foo.bar.baz.main abc def abc def
ポイント: