如果我在同一目录中有两个单独的未编译的scala文件:
// hello.scala
object hello {
def world() = println("hello world")
}
Run Code Online (Sandbox Code Playgroud)
和:
// do.scala
hello.world()
Run Code Online (Sandbox Code Playgroud)
运行do.scala时出错:
$ scala do.scala
error: not found: value hello
Run Code Online (Sandbox Code Playgroud)
相反,我必须首先编译hello.scala文件并将其放在类路径上以使其工作:
$ scalac hello.scala
$ scala -cp hello do.scala
hello world
Run Code Online (Sandbox Code Playgroud)
有没有办法让一个脚本使用import,package,classpath,scala命令行工具或其他东西正确使用来调用另一个未编译的scala文件?
也许不完全是你想要的,但是你可以从Scala REPL shell中做到
:load hello.scala
:load do.scala
Run Code Online (Sandbox Code Playgroud)
实现相同的结果:
$ scala
Welcome to Scala version 2.9.1 (Java HotSpot(TM) Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.
scala> :load hello.scala
Loading hello.scala...
defined module hello
scala> :load do.scala
Loading do.scala...
hello world
scala>
Run Code Online (Sandbox Code Playgroud)
如果你想要一些非交互式的脚本
$ cat <<EOF | scala
:load hello.scala
:load do.scala
EOF
Run Code Online (Sandbox Code Playgroud)
也有效.
使用:help更有趣的事情REPL壳可以做.
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |